pub trait ResizePaddedNumber<const A_1: u8, const B_1: u8>: SealedResize {
// Required method
fn resize(&self) -> PaddedNumber<A_1, B_1>;
}Expand description
Resize a PaddedNumber into a larger one or one of the same size.
Type system ensures that the new minimum length <= previous minimum length, and that the new maximum length >= previous maximum length.
#![feature(generic_const_exprs)]
let a = bound_padded_number!(2, 3, "123").resize();
let b = bound_padded_number!(1, 5, "123");
assert_eq!(a, b)It being marked at trait makes it possible to define functions which allow the passing of any padded number which fits into the desired size.
let a = bound_padded_number!(2, 3, "12");
foo_dyn(&a);
foo_impl(a);
let b = bound_padded_number!(3, 3, "123");
foo_dyn(&b);
foo_impl(b);
fn foo_dyn(padded_number: &dyn ResizePaddedNumber<2, 3>) {
let _padded_number = padded_number.resize();
}
fn foo_impl(padded_number: impl ResizePaddedNumber<2, 3>) {
let _padded_number = padded_number.resize();
}Required Methods§
Sourcefn resize(&self) -> PaddedNumber<A_1, B_1>
fn resize(&self) -> PaddedNumber<A_1, B_1>
Resize a padded number
Check out the trait-level documentation for more