Function constmuck::wrapper::peel [−][src]
pub const fn peel<Outer, Inner>(
val: Outer,
_bound: IsTransparentWrapper<Outer, Inner>
) -> Inner
Expand description
Casts Outer
to Inner
Requires that Outer
implements
TransparentWrapper<Inner>
Example
use constmuck::{IsTW, wrapper};
use std::num::Wrapping;
// `IsTW!()` is a more concise way to write `IsTransparentWrapper::NEW`
const VALUE: u32 = wrapper::peel(Wrapping(3), IsTW!());
assert_eq!(VALUE, 3);
// Casting `[Wrapping<u32>; 3]` to `[u32; 3]`
//
// The `.array()` is required to cast arrays of wrappers into
// arrays of the values inside those wrappers.
const ARR: [u32; 3] = wrapper::peel(
[Wrapping(5), Wrapping(8), Wrapping(13)],
IsTW!(Wrapping<u32>, u32).array(),
);
assert_eq!(ARR, [5, 8, 13]);