iota_stardust_types/block/
convert.rs1use crate::block::Error;
5
6pub trait ConvertTo<T>: Send + Sized {
7 fn convert(self) -> Result<T, Error>;
8
9 fn convert_unchecked(self) -> T {
10 self.convert().unwrap()
11 }
12}
13
14impl<T: Send + Sized> ConvertTo<T> for T {
15 fn convert(self) -> Result<T, Error> {
16 Ok(self)
17 }
18
19 fn convert_unchecked(self) -> T {
20 self
21 }
22}
23
24impl<T: Copy + Send + Sync + Sized> ConvertTo<T> for &T {
25 fn convert(self) -> Result<T, Error> {
26 Ok(*self)
27 }
28
29 fn convert_unchecked(self) -> T {
30 *self
31 }
32}