pub enum Patch {
ElongateDomain(usize, bool, isize, bool, usize),
ShortenDomain(usize, bool, isize, bool, usize),
AddHelix(Helix),
DeleteHelix(usize),
AddStrand(usize, bool, isize),
DeleteStrand(usize, bool, isize),
CrossOver(usize, bool, usize, isize, bool),
MakeBound(usize, bool, isize, usize, bool, isize),
CutBound(usize, bool, isize, usize, bool, isize),
}
Expand description
An atomic modification of an existing design. Patches have operation to permute them or undo them.
Variants§
ElongateDomain(usize, bool, isize, bool, usize)
ElongateDomain(h, b1, n, b2, n2) elongate the b2 end of domain whose b2 end is (h, b1, n1) by n2 nucleotides
ShortenDomain(usize, bool, isize, bool, usize)
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(usize, bool, isize)
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(usize, bool, isize)
DeleteStrand(h, b, n) delete the strand containing only the nucleotide (h, b, n)
CrossOver(usize, bool, usize, isize, bool)
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(usize, bool, isize, usize, bool, isize)
MakeBound(h1, b1, n1, h2, b2, n2) Make a bound between the nucleotides (h1, b1, n1) and (h2, b2, n2)
CutBound(usize, bool, isize, usize, bool, isize)
CutBound(h1, b1, n1, h2, b2, n2) Cut the bound between the nucleotides (h1, b1, n1) and (h2, b2, n2)
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Patch
impl RefUnwindSafe for Patch
impl Send for Patch
impl Sync for Patch
impl Unpin for Patch
impl UnwindSafe for Patch
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more