WIP: Error doc
I'm working on syscall/src/error.rs
. I don't expect this to be merged, because it would break a lot of code. It's more a list of proposals than a merge request or an invitation to discuss.
First of all, I added some comments and tests. Just run cargo test
to see the test results.
In the first commit, I also added some boundary checks on Error::new
and Error::mux
. The main idea is that one should not be allowed to create an error without using a predefined constant, or trying to mux a huge Ok
value. This must trigger a panic and be fixed in the kernel.
I also removed the public access to STR_ERROR
. I think that a module should expose services rather than data. The only use of STR_ARRAY
I could find is: "given an errno
, what is the error description?". Why not give directly this service?
Second commit: I was rather confused by an Error::demux
returning Ok
. I expected it to always return an Error
. I created a result
module for Result
, mux
and demux
. When I read result::demux
, it seems clear to me that I will get a Result
. That may seem a detail, but if the code is easy to read, you avoid bugs.
Obviously, this would break a lot of libraries!
What do you think about this?