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