pub enum PostLigOperation {
    RetainBothMoveNowhere,
    RetainBothMoveToInserted,
    RetainBothMoveToRight,
    RetainRightMoveToInserted,
    RetainRightMoveToRight,
    RetainLeftMoveNowhere,
    RetainLeftMoveToInserted,
    RetainNeitherMoveToInserted,
}
Expand description

A post-lig operation to perform after performing a ligature operation (Operation::Ligature).

A lig operation starts with a pair of characters (x,y) and a “cursor” on x. The operation then inserts another character to get, say, (x,z,y). At this point the cursor is still on x. The post-lig operation does two things:

  1. First, it potentially deletes x or y or both.
  2. Second, it potentially moves the cursor forward.

After this, if the cursor is not at the end of the list of characters, the lig-kern program is run for the new pair starting at the cursor.

For example, the post-lig operation PostLigOperation::RetainLeftMoveNowhere retains x and deletes y, leaving (x,z). It then moves the cursor nowhere, leaving it on x. As a result, the lig kern program for the pair (x,z) will run.

On the other hand, if the post-lig operation PostLigOperation::RetainLeftMoveToInserted runs, y is still deleted but the cursor moves to z. This is the last character in this list and there no more pairs of characters to consider. The lig/kern program thus terminates.

In general all of the post-lig operations are of the form RetainXMoveY where X specifies the characters to retain and Y specifies where the cursor should move.

Variants§

§

RetainBothMoveNowhere

Corresponds to the /LIG/ property list element.

§

RetainBothMoveToInserted

Corresponds to the /LIG/> property list element.

§

RetainBothMoveToRight

Corresponds to the /LIG/>> property list element.

§

RetainRightMoveToInserted

Corresponds to the LIG/ property list element.

§

RetainRightMoveToRight

Corresponds to the LIG/> property list element.

§

RetainLeftMoveNowhere

Corresponds to the /LIG property list element.

§

RetainLeftMoveToInserted

Corresponds to the /LIG> property list element.

§

RetainNeitherMoveToInserted

Corresponds to the LIG property list element.

Trait Implementations§

source§

impl<'arbitrary> Arbitrary<'arbitrary> for PostLigOperation

source§

fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>

Generate an arbitrary value of Self from the given unstructured data. Read more
source§

fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
source§

impl Clone for PostLigOperation

source§

fn clone(&self) -> PostLigOperation

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PostLigOperation

source§

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

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

impl PartialEq<PostLigOperation> for PostLigOperation

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for PostLigOperation

source§

impl Eq for PostLigOperation

source§

impl StructuralEq for PostLigOperation

source§

impl StructuralPartialEq for PostLigOperation

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.