Change `ErrorCode` and `ReturnType` to tuple structs to be more idiomatic.
diff --git a/core/platform/src/error_code.rs b/core/platform/src/error_code.rs index 99fa474..bd083e0 100644 --- a/core/platform/src/error_code.rs +++ b/core/platform/src/error_code.rs
@@ -4,33 +4,31 @@ // ErrorCode is not an enum so that conversion from the kernel's return value (a // `usize` in a register) is free. #[derive(Clone, Copy, PartialEq, Eq)] -pub struct ErrorCode { - value: usize, -} +pub struct ErrorCode(usize); impl From<usize> for ErrorCode { fn from(value: usize) -> ErrorCode { - ErrorCode { value } + ErrorCode(value) } } impl From<ErrorCode> for usize { fn from(error_code: ErrorCode) -> usize { - error_code.value + error_code.0 } } -pub const FAIL: ErrorCode = ErrorCode { value: 1 }; -pub const BUSY: ErrorCode = ErrorCode { value: 2 }; -pub const ALREADY: ErrorCode = ErrorCode { value: 3 }; -pub const OFF: ErrorCode = ErrorCode { value: 4 }; -pub const RESERVE: ErrorCode = ErrorCode { value: 5 }; -pub const INVALID: ErrorCode = ErrorCode { value: 6 }; -pub const SIZE: ErrorCode = ErrorCode { value: 7 }; -pub const CANCEL: ErrorCode = ErrorCode { value: 8 }; -pub const NOMEM: ErrorCode = ErrorCode { value: 9 }; -pub const NOSUPPORT: ErrorCode = ErrorCode { value: 10 }; -pub const NODEVICE: ErrorCode = ErrorCode { value: 11 }; -pub const UNINSTALLED: ErrorCode = ErrorCode { value: 12 }; -pub const NOACK: ErrorCode = ErrorCode { value: 13 }; -pub const BADRVAL: ErrorCode = ErrorCode { value: 1024 }; +pub const FAIL: ErrorCode = ErrorCode(1); +pub const BUSY: ErrorCode = ErrorCode(2); +pub const ALREADY: ErrorCode = ErrorCode(3); +pub const OFF: ErrorCode = ErrorCode(4); +pub const RESERVE: ErrorCode = ErrorCode(5); +pub const INVALID: ErrorCode = ErrorCode(6); +pub const SIZE: ErrorCode = ErrorCode(7); +pub const CANCEL: ErrorCode = ErrorCode(8); +pub const NOMEM: ErrorCode = ErrorCode(9); +pub const NOSUPPORT: ErrorCode = ErrorCode(10); +pub const NODEVICE: ErrorCode = ErrorCode(11); +pub const UNINSTALLED: ErrorCode = ErrorCode(12); +pub const NOACK: ErrorCode = ErrorCode(13); +pub const BADRVAL: ErrorCode = ErrorCode(1024);
diff --git a/core/platform/src/return_type.rs b/core/platform/src/return_type.rs index 5d491b2..da19e87 100644 --- a/core/platform/src/return_type.rs +++ b/core/platform/src/return_type.rs
@@ -1,29 +1,27 @@ /// `ReturnType` describes what value type the kernel has returned. // ReturnType is not an enum so that it can be converted from a u32 for free. #[derive(Clone, Copy, PartialEq, Eq)] -pub struct ReturnType { - value: u32, -} +pub struct ReturnType(u32); impl From<u32> for ReturnType { fn from(value: u32) -> ReturnType { - ReturnType { value } + ReturnType(value) } } impl From<ReturnType> for u32 { fn from(return_type: ReturnType) -> u32 { - return_type.value + return_type.0 } } -pub const FAILURE: ReturnType = ReturnType { value: 0 }; -pub const FAILURE_U32: ReturnType = ReturnType { value: 1 }; -pub const FAILURE_2_U32: ReturnType = ReturnType { value: 2 }; -pub const FAILURE_U64: ReturnType = ReturnType { value: 3 }; -pub const SUCCESS: ReturnType = ReturnType { value: 128 }; -pub const SUCCESS_U32: ReturnType = ReturnType { value: 129 }; -pub const SUCCESS_2_U32: ReturnType = ReturnType { value: 130 }; -pub const SUCCESS_U64: ReturnType = ReturnType { value: 131 }; -pub const SUCCESS_3_U32: ReturnType = ReturnType { value: 132 }; -pub const SUCCESS_U32_U64: ReturnType = ReturnType { value: 133 }; +pub const FAILURE: ReturnType = ReturnType(0); +pub const FAILURE_U32: ReturnType = ReturnType(1); +pub const FAILURE_2_U32: ReturnType = ReturnType(2); +pub const FAILURE_U64: ReturnType = ReturnType(3); +pub const SUCCESS: ReturnType = ReturnType(128); +pub const SUCCESS_U32: ReturnType = ReturnType(129); +pub const SUCCESS_2_U32: ReturnType = ReturnType(130); +pub const SUCCESS_U64: ReturnType = ReturnType(131); +pub const SUCCESS_3_U32: ReturnType = ReturnType(132); +pub const SUCCESS_U32_U64: ReturnType = ReturnType(133);