Keyword

Struct Keyword 

Source
pub struct Keyword(/* private fields */);
Expand description

Keyword structure, used in constructing the matrix in which the encryption is performed over.

Implementations§

Source§

impl Keyword

Source

pub fn new(initial: &str) -> Self

Create a keyword from an initial input. This will have a size of 25 and will not have any duplicate letters, and equate the letter ‘i’ to the letter ‘j’. This is to conform to the 5x5 matrix that the Playfair cipher is used on. The letter ‘j’ was chosen arbitrarily due to its low use in the English language. This will mean that upon decryption, you’ll notice anything that once was a ‘j’ in the initial plain text is now an ‘i’.

§Example

Key: playfair Message: Jane Encrypted message: bpun Decrypted of encryption: iane

Two things to note with this, it turns everything lowercase for easier searching and complexity, and j’s are now converted to i’s.

§TODO

According to this post, using .retain() on the initial filitering we do may be faster in release builds. Investigate more.

Source

pub fn to_matrix(&self) -> Matrix

Convert the keyword into a 5x5 Matrix array type in. TODO: This can be converted to a 1-d array

Trait Implementations§

Source§

impl Debug for Keyword

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Keyword

Source§

fn eq(&self, other: &Keyword) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Keyword

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.