Struct EnigmaMachine

Source
pub struct EnigmaMachine { /* private fields */ }

Implementations§

Source§

impl EnigmaMachine

Source

pub fn new() -> impl EnigmaBuilder

Creates a new Enigma machine with blank settings. The settings for the machine must be added using the methods of EnigmaBuilder; See the README for an example.

The returned value from this will always be Ok, and will be an Enigma machine with rotors 1, 1, 1, ring positions 1, 1, and 1, ring settings 1, 1, and 1, reflector A, and an empty plugboard.

Source

pub fn decode(&self, text: &str) -> String

Decodes the given text using this Enigma machine.

This is exactly the same as calling machine.encode(text), since the enigma cipher is symmetric; The only difference is semantic meaning and intent, i.e.,

assert_eq!(text, machine.decode(machine.decode(text)));
assert_eq!(text, machine.encode(machine.encode(text)));
assert_eq!(text, machine.decode(machine.encode(text)));
assert_eq!(text, machine.encode(machine.decode(text)));
§Parameters
  • text - The text to decode.
§Returns

The decoded text.

Source

pub fn encode(&self, text: &str) -> String

Encodes the given text using this Enigma machine.

This is exactly the same as calling machine.decode(text), since the enigma cipher is symmetric; The only difference is semantic meaning and intent, i.e.,

assert_eq!(text, machine.decode(machine.decode(text)));
assert_eq!(text, machine.encode(machine.encode(text)));
assert_eq!(text, machine.decode(machine.encode(text)));
assert_eq!(text, machine.encode(machine.decode(text)));
§Parameters
  • text - The text to encode.
§Returns

The encoded text.

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.