Enum cosmwasm_std::Never
source · pub enum Never {}
Expand description
Never can never be instantiated. This can be used in places
where we want to ensure that no error is returned, such as
the ibc_packet_receive
entry point.
In contrast to Empty
, this does not have a JSON schema
and cannot be used for message and query types.
Once the ! type is stable, this is not needed anymore. See https://github.com/rust-lang/rust/issues/35121.
§Examples
When using Never
in a Result
, we can unwrap in a type-safe way:
use cosmwasm_std::Never;
pub fn safe_unwrap<T>(res: Result<T, Never>) -> T {
match res {
Ok(value) => value,
Err(err) => match err {},
}
}
let res: Result<i32, Never> = Ok(5);
assert_eq!(safe_unwrap(res), 5);
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Never
impl Send for Never
impl Sync for Never
impl Unpin for Never
impl UnwindSafe for Never
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more