Trait the_key::KeyPartsSequence[][src]

pub trait KeyPartsSequence: Clone {
    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[src]

fn extend<B: AsRef<[u8]>>(self, key_part_name: &'static str, bytes: B) -> Self[src]

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]
  )
}

fn create_key<T: AsRef<[u8]>>(&self, key: T) -> Key<'_, Self>[src]

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],
  );
}
Loading content...

Implementors

Loading content...