Struct trust_dns_proto::serialize::binary::Restrict [−][src]
pub struct Restrict<T>(_);
Expand description
Untrusted types will be wrapped in this type.
To gain access to the data, some form of verification through one of the public methods is necessary.
Implementations
It is the responsibility of this function to verify the contained type is valid.
use trust_dns_proto::serialize::binary::Restrict;
let unrestricted = Restrict::new(0).verify(|r| *r == 0).then(|r| *r + 1).unwrap();
assert!(unrestricted == 1);
Returns
If f
returns true then the value is valid and a chainable Verified
type is returned
It is the responsibility of this function to verify the contained type is valid.
use trust_dns_proto::serialize::binary::Restrict;
let unrestricted = Restrict::new(0).verify_unwrap(|r| *r == 0).unwrap();
assert!(unrestricted == 0);
Returns
If f
returns true then the value is valid and Ok(T)
is returned. Otherwise
Err(T)
is returned.
Unwraps the value without verifying the data, akin to Result::unwrap and Option::unwrap, but will not panic
Map the internal type of the restriction
use trust_dns_proto::serialize::binary::Restrict;
let restricted = Restrict::new(0).map(|b| vec![b, 1]);
assert!(restricted.verify(|v| v == &[0, 1]).is_valid());
assert!(!restricted.verify(|v| v == &[1, 0]).is_valid());
Trait Implementations
Checked addition, see usize::checked_add
Checked subtraction, see usize::checked_sub
Checked addition, see usize::checked_add
Checked subtraction, see usize::checked_sub
Checked addition, see usize::checked_add
Checked subtraction, see usize::checked_sub
Auto Trait Implementations
impl<T> RefUnwindSafe for Restrict<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Restrict<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more