pub trait KeyPartsSequence: Clone {
// Required methods
fn new() -> Self;
fn extend<B: AsRef<[u8]>>(
self,
key_part_name: &'static str,
bytes: B,
) -> Self;
fn create_key<T: AsRef<[u8]>>(&self, key: T) -> Key<'_, Self>;
}Required Methods§
fn new() -> Self
Sourcefn extend<B: AsRef<[u8]>>(self, key_part_name: &'static str, bytes: B) -> Self
fn extend<B: AsRef<[u8]>>(self, key_part_name: &'static str, bytes: B) -> Self
Extends key sequence with a new part
§Example
use the_key::*;
define_key_part!(Part1, &[10, 20]);
define_key_part!(Part2, &[30, 40]);
define_key_seq!(MyKeySeq, [Part1, Part2]);
fn main() {
let key_seq = MyKeySeq::new().extend("Part3", &[50, 60]);
assert_eq!(
key_seq.to_vec(),
vec![10, 20, 30, 40, 50, 60]
)
}Sourcefn create_key<T: AsRef<[u8]>>(&self, key: T) -> Key<'_, Self>
fn create_key<T: AsRef<[u8]>>(&self, key: T) -> Key<'_, Self>
Creates new the_key::Key object
§Example
use the_key::*;
define_key_part!(Part1, &[10, 20]);
define_key_part!(Part2, &[30, 40]);
define_key_seq!(MyKeySeq, [Part1, Part2]);
fn main() {
let key_seq = MyKeySeq::new();
let key = key_seq.create_key(&[50, 60]);
assert_eq!(
key.to_vec(),
vec![10, 20, 30, 40, 50, 60],
);
}Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.