pub trait NoneValue {
type NoneType;
// Required method
fn null_value() -> Self::NoneType;
}
Expand description
Type that uses a special value to be used as none.
See Optional
documentation for the rationale for this trait’s existence.
§Caveats
Since use of default values as none is typical, this trait is implemented for all types that
implement Default
for convenience. Unfortunately, this means you can not implement this
trait manually for types that implement Default
.
Moreoever, since bool
implements Default
, NoneValue
gets implemented for bool
as well.
However, this is unsound since its not possible to distinguish between false
and None
in
this case. This is why you’ll get a panic on trying to serialize or deserialize an
Optionanl<bool>
.
Required Associated Types§
Required Methods§
Sourcefn null_value() -> Self::NoneType
fn null_value() -> Self::NoneType
The none-equivalent value.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.