[][src]Macro len_constraints::constraints

macro_rules! constraints {
    ($source:ident => $constrained:ty) => { ... };
    ($source:ident => $constrained:ty [$len:expr]) => { ... };
    ($( $source:ident => $constrained:ty $([$len:expr])* ),+) => { ... };
}

Convert multiple variables in-place into their constrained representation

Example

constraints! {
	buf => RelativeMut<u8, Add, _16> [plaintext.len()],
	plaintext => Ranged<u8, _0, _65536>,
	key => Fixed<u8, _32>,
	nonce => Fixed<u8, _12>
};

// Print the types
println!("{:?}", buf);       // RelativeMut { slice: [ ... ], constraint: PhantomData }
println!("{:?}", plaintext); // Ranged { slice: [ ... ], constraint: PhantomData }
println!("{:?}", key);       // Fixed { slice: [ ... ], constraint: PhantomData }
println!("{:?}", nonce);     // Fixed { slice: [ ... ], constraint: PhantomData }