rust: error: improve `Error::from_errno` documentation
This constructor is public since commit 5ed1474734 ("rust: error:
make conversion functions public"), and we will refer to it from the
documentation of `to_result` in a later commit.
Thus improve its documentation, including adding examples.
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
parent
4fa9f72d65
commit
58b4aa5360
|
|
@ -103,8 +103,23 @@ pub struct Error(NonZeroI32);
|
|||
impl Error {
|
||||
/// Creates an [`Error`] from a kernel error code.
|
||||
///
|
||||
/// It is a bug to pass an out-of-range `errno`. `EINVAL` would
|
||||
/// be returned in such a case.
|
||||
/// `errno` must be within error code range (i.e. `>= -MAX_ERRNO && < 0`).
|
||||
///
|
||||
/// It is a bug to pass an out-of-range `errno`. [`code::EINVAL`] is returned in such a case.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// assert_eq!(Error::from_errno(-1), EPERM);
|
||||
/// assert_eq!(Error::from_errno(-2), ENOENT);
|
||||
/// ```
|
||||
///
|
||||
/// The following calls are considered a bug:
|
||||
///
|
||||
/// ```
|
||||
/// assert_eq!(Error::from_errno(0), EINVAL);
|
||||
/// assert_eq!(Error::from_errno(-1000000), EINVAL);
|
||||
/// ```
|
||||
pub fn from_errno(errno: crate::ffi::c_int) -> Error {
|
||||
if let Some(error) = Self::try_from_errno(errno) {
|
||||
error
|
||||
|
|
|
|||
Loading…
Reference in New Issue