[][src]Enum codenano::patch::Patch

pub enum Patch {
    ElongateDomain(usizeboolisizeboolusize),
    ShortenDomain(usizeboolisizeboolusize),
    AddHelix(Helix),
    DeleteHelix(usize),
    AddStrand(usizeboolisize),
    DeleteStrand(usizeboolisize),
    CrossOver(usizeboolusizeisizebool),
    MakeBound(usizeboolisizeusizeboolisize),
    CutBound(usizeboolisizeusizeboolisize),
}

An atomic modification of an existing design. Patches have operation to permute them or undo them.

Variants

ElongateDomain(usizeboolisizeboolusize)

ElongateDomain(h, b1, n, b2, n2) elongate the b2 end of domain whose b2 end is (h, b1, n1) by n2 nucleotides

ShortenDomain(usizeboolisizeboolusize)

ShortenDomain(h, b1, n, b2, n2) shorten the b2 end of domain whose b2 end is (h, b1, n1) by n2 nucleotides

AddHelix(Helix)

AddHelix(h) add helix h

DeleteHelix(usize)

DeleteHelix(n) delete helix with identifier n

AddStrand(usizeboolisize)

Add Strand (h, b, n) add a strand on helix b at position n on the right strand if b on the left strand otherwise

DeleteStrand(usizeboolisize)

DeleteStrand(h, b, n) delete the strand containing only the nucleotide (h, b, n)

CrossOver(usizeboolusizeisizebool)

CrossOver(s, b1, h, n, b2) the b1 (5' if true, 3' if false) end strand s jumps to helix h at position n on the right strand if b, on the left strand otherwise

MakeBound(usizeboolisizeusizeboolisize)

MakeBound(h1, b1, n1, h2, b2, n2) Make a bound between the nucleotides (h1, b1, n1) and (h2, b2, n2)

CutBound(usizeboolisizeusizeboolisize)

CutBound(h1, b1, n1, h2, b2, n2) Cut the bound between the nucleotides (h1, b1, n1) and (h2, b2, n2)

Implementations

impl Patch[src]

pub fn apply<S: Serialize, T: Serialize>(&self, design: &mut Design<S, T>)[src]

Apply self on a design

pub fn undo(&self) -> Self[src]

Return the inverse of self

Trait Implementations

impl Clone for Patch[src]

impl Debug for Patch[src]

Auto Trait Implementations

impl RefUnwindSafe for Patch

impl Send for Patch

impl Sync for Patch

impl Unpin for Patch

impl UnwindSafe for Patch

Blanket Implementations

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    D: AdaptFrom<S, Swp, Dwp, T>,
    Dwp: WhitePoint,
    Swp: WhitePoint,
    T: Component + Float
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.