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);