Trait tengwar::policy::Policy

source ·
pub trait Policy: Copy {
    // Provided methods
    fn ligates_with_ara(base: char) -> bool { ... }
    fn telco_ligates_with(base: char) -> bool { ... }
    fn ligature_valid<P: Policy>(
        prev: &Glyph<Self>,
        next: &Glyph<P>,
        level: u8
    ) -> bool { ... }
    fn nuquerna(base: char) -> char { ... }
    fn nuquerna_valid(base: char) -> bool { ... }
    fn rince(base: char, is_final: bool) -> Rince { ... }
    fn rince_valid(base: char) -> bool { ... }
    fn rince_valid_final(base: char) -> bool { ... }
    fn transcriber<M>(input: impl ToTengwar) -> Transcriber<M, Self>
       where M: TengwarMode + Default { ... }
}
Expand description

This trait defines higher-level behavior for rendering Tengwar.

Provided Methods§

source

fn ligates_with_ara(base: char) -> bool

Returns a boolean indicating whether a given character may form a ligature with a long carrier that follows it.

The ligature will be formed by emitting a Zero-Width Joiner between the two characters.

source

fn telco_ligates_with(base: char) -> bool

Returns a boolean indicating whether a short carrier may form a ligature with a given character that follows it.

The ligature will be formed by replacing the short carrier character with a variant.

source

fn ligature_valid<P: Policy>( prev: &Glyph<Self>, next: &Glyph<P>, level: u8 ) -> bool

Determine whether two Glyphs can be joined by a zero-width joiner.

source

fn nuquerna(base: char) -> char

Returns the “Nuquerna”, or inverted, variant of a given character, if it has one.

The Nuquerna variant is used when a significant portion of a tengwa extends above the center of the character, but a diacritical tehta also needs to occupy that same space. The Nuquerna variant instead extends downwards, leaving the space above free for the tehta.

source

fn nuquerna_valid(base: char) -> bool

Check whether a tengwa has an inverted variant.

source

fn rince(base: char, is_final: bool) -> Rince

Returns the appropriate “Sa-Rincë”, or “S-hook”, for a given character, if it can host one, taking into account whether it is the final character in a word.

The Sa-Rincë is attached to indicate that a sibilant sound follows the character. For a character at the end of a word, a more ornate variant may be used.

source

fn rince_valid(base: char) -> bool

Check whether a base tengwa is suitable to receive a sa-rincë.

source

fn rince_valid_final(base: char) -> bool

Check whether a base tengwa is suitable to receive the alternate rincë.

source

fn transcriber<M>(input: impl ToTengwar) -> Transcriber<M, Self>where M: TengwarMode + Default,

Create a Transcriber using the given TengwarMode.

Object Safety§

This trait is not object safe.

Implementors§