Trait tengwar::ToTengwar

source ·
pub trait ToTengwar {
    // Required method
    fn transcriber<M: TengwarMode + Default>(&self) -> Transcriber<M>;

    // Provided methods
    fn to_tengwar<M: TengwarMode + Default>(&self) -> String { ... }
    fn to_tengwar_with<M>(&self, settings: TranscriberSettings) -> String
       where M: TengwarMode + Default { ... }
}
Expand description

A very small trait serving to implement ergonomic transcription methods directly onto text objects.

Required Methods§

source

fn transcriber<M: TengwarMode + Default>(&self) -> Transcriber<M>

Create a Transcriber to iteratively transcribe this text into the Tengwar. The returned iterator will yield Tokens.

Example
use tengwar::{Quenya, ToTengwar, VowelStyle};

const INPUT: &str = "lotsë súva"; // "a flower is sinking"


//  Collect directly with default settings.
let mut ts = INPUT.transcriber::<Quenya>();
assert_eq!(ts.into_string(), " ");


//  Use Unique Tehtar.
let mut ts = INPUT.transcriber::<Quenya>();
ts.settings.vowels = VowelStyle::Unique;
assert_eq!(ts.into_string(), " ");


//  Use Nuquernë Tengwar.
let mut ts = INPUT.transcriber::<Quenya>();
ts.settings.nuquerna = true;
assert_eq!(ts.into_string(), " ");


//  Use Unique Tehtar and Nuquernë Tengwar.
let mut ts = INPUT.transcriber::<Quenya>();
ts.settings.nuquerna = true;
ts.settings.vowels = VowelStyle::Unique;
assert_eq!(ts.into_string(), " ");


//  Use several options.
let mut ts = INPUT.transcriber::<Quenya>();
ts.settings.alt_a = true;
ts.settings.alt_rince = true;
ts.settings.nuquerna = true;
ts.settings.vowels = VowelStyle::Separate;
assert_eq!(ts.into_string(), " ");

Provided Methods§

source

fn to_tengwar<M: TengwarMode + Default>(&self) -> String

Transcribe this object into the Tengwar directly.

Example
use tengwar::{Quenya, ToTengwar};

let text: String = "namárië !".to_tengwar::<Quenya>();
assert_eq!(text, " ");
source

fn to_tengwar_with<M>(&self, settings: TranscriberSettings) -> Stringwhere M: TengwarMode + Default,

Transcribe this object into the Tengwar, using TranscriberSettings provided as an argument. This allows the settings to be reused much more easily.

For examples of the available settings, see the documentation of Self::transcriber.

Example
use tengwar::{Quenya, ToTengwar, TranscriberSettings};

let mut settings = TranscriberSettings::new();
settings.alt_a = true;
settings.nuquerna = true;

let text: String = "namárië !".to_tengwar_with::<Quenya>(settings);
assert_eq!(text, " ");

let text: String = "lotsë súva".to_tengwar_with::<Quenya>(settings);
assert_eq!(text, " ");

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<S: AsRef<str>> ToTengwar for S