Trait vesta::Case [−][src]
An implementation of Case
defines a particular case of a pattern match for a type.
ℹ️
Prefer using the methods of CaseExt
to directly calling these methods.
Associated Types
Loading content...Required methods
unsafe fn case(this: Self) -> Self::Case
[src]
If the value’s tag
is N
, return that case.
Safety
It is undefined behavior to call this function when self.tag()
would return
anything other than Some(n)
, where n = N
.
Examples
use vesta::{Match, Case}; let option = Some("hello"); assert_eq!(option.tag(), Some(1)); let string = unsafe { <_ as Case<1>>::case(option) }; assert_eq!(string, "hello");
fn uncase(case: Self::Case) -> Self
[src]
Provided methods
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
If the value’s tag
is N
, return that case; otherwise, return self
.
In its default implementation, this method checks that self.tag() == N
and then calls
case
only if so.
In the case where this method can be more efficiently implemented than the composition of
tag
with case
, this method can be overloaded.
Examples
use vesta::Case; let result = <_ as Case<1>>::try_case(Some("hello")); assert_eq!(result, Ok("hello"));
Implementations on Foreign Types
impl<T> Case<0_usize> for Option<T>
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<1_usize> for Option<T>
[src]
type Case = T
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T, E> Case<0_usize> for Result<T, E>
[src]
type Case = T
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T, E> Case<1_usize> for Result<T, E>
[src]
type Case = E
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a, B: ?Sized> Case<0_usize> for Cow<'a, B> where
B: 'a + ToOwned,
[src]
B: 'a + ToOwned,
type Case = &'a B
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a, B: ?Sized> Case<1_usize> for Cow<'a, B> where
B: 'a + ToOwned,
[src]
B: 'a + ToOwned,
type Case = <B as ToOwned>::Owned
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for VarError
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for VarError
[src]
type Case = OsString
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for SeekFrom
[src]
type Case = u64
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for SeekFrom
[src]
type Case = i64
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<2_usize> for SeekFrom
[src]
type Case = i64
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<0_usize> for Bound<T>
[src]
type Case = T
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<1_usize> for Bound<T>
[src]
type Case = T
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<2_usize> for Bound<T>
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for IpAddr
[src]
type Case = Ipv4Addr
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for IpAddr
[src]
type Case = Ipv6Addr
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for SocketAddr
[src]
type Case = SocketAddrV4
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for SocketAddr
[src]
type Case = SocketAddrV6
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for Shutdown
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for Shutdown
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<2_usize> for Shutdown
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<0_usize> for TryLockError<T>
[src]
type Case = PoisonError<T>
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<1_usize> for TryLockError<T>
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for TryRecvError
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for TryRecvError
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for RecvTimeoutError
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for RecvTimeoutError
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<0_usize> for TrySendError<T>
[src]
type Case = T
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<T> Case<1_usize> for TrySendError<T>
[src]
type Case = T
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for FpCategory
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for FpCategory
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<2_usize> for FpCategory
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<3_usize> for FpCategory
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<4_usize> for FpCategory
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for Alignment
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for Alignment
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<2_usize> for Alignment
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<0_usize> for Prefix<'a>
[src]
type Case = &'a OsStr
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<1_usize> for Prefix<'a>
[src]
type Case = (&'a OsStr, &'a OsStr)
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<2_usize> for Prefix<'a>
[src]
type Case = u8
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<3_usize> for Prefix<'a>
[src]
type Case = &'a OsStr
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<4_usize> for Prefix<'a>
[src]
type Case = (&'a OsStr, &'a OsStr)
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<5_usize> for Prefix<'a>
[src]
type Case = u8
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<0_usize> for Component<'a>
[src]
type Case = PrefixComponent<'a>
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<1_usize> for Component<'a>
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<2_usize> for Component<'a>
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<3_usize> for Component<'a>
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a> Case<4_usize> for Component<'a>
[src]
type Case = &'a OsStr
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<2_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<3_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<4_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<5_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<6_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<7_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<8_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<9_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<10_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<11_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<12_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<13_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<14_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<15_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<16_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<17_usize> for ErrorKind
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<2_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<0_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<1_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<2_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<3_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl Case<4_usize> for Ordering
[src]
type Case = ()
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a, K, V> Case<0_usize> for Entry<'a, K, V> where
K: 'a,
V: 'a,
[src]
K: 'a,
V: 'a,
type Case = VacantEntry<'a, K, V>
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a, K, V> Case<1_usize> for Entry<'a, K, V> where
K: 'a,
V: 'a,
[src]
K: 'a,
V: 'a,
type Case = OccupiedEntry<'a, K, V>
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a, K, V> Case<0_usize> for Entry<'a, K, V> where
K: 'a,
V: 'a,
[src]
K: 'a,
V: 'a,
type Case = VacantEntry<'a, K, V>
unsafe fn case(this: Self) -> Self::Case
[src]
fn uncase(case: Self::Case) -> Self
[src]
fn try_case(this: Self) -> Result<Self::Case, Self>
[src]
impl<'a, K, V> Case<1_usize> for Entry<'a, K, V> where
K: 'a,
V: 'a,
[src]
K: 'a,
V: 'a,