diff --git a/libraries/pod/src/option.rs b/libraries/pod/src/option.rs index 60a4b584c79..0ebad18608a 100644 --- a/libraries/pod/src/option.rs +++ b/libraries/pod/src/option.rs @@ -43,6 +43,12 @@ pub trait Nullable: PartialEq + Pod + Sized { #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] pub struct PodOption(T); +impl Default for PodOption { + fn default() -> Self { + Self(T::NONE) + } +} + impl PodOption { /// Returns the contained value as an `Option`. #[inline] @@ -178,4 +184,10 @@ mod tests { let err = PodOption::try_from(invalid_option).unwrap_err(); assert_eq!(err, ProgramError::InvalidArgument); } + + #[test] + fn test_default() { + let def = PodOption::::default(); + assert_eq!(def, None.try_into().unwrap()); + } }