pub struct Rim<T> {
pub inner: Vec<T>,
}Expand description
Contains a repeated insertion model (RIM) vector and methods to generate and trasnform them.
Fields§
§inner: Vec<T>Implementations§
Source§impl<T> Rim<T>
impl<T> Rim<T>
Sourcepub fn from_vec(inner: Vec<T>) -> Rim<T>
pub fn from_vec(inner: Vec<T>) -> Rim<T>
Creates a Inversion object from the vector.
§Example
use permu_rs::rim::Rim;
let rim_vec = vec![0,0,1,1];
let rim = Rim::<u8>::from_vec(rim_vec);Sourcepub fn to_permu(iv: &Rim<T>, out: &mut Permutation<T>) -> Result<(), Error>
pub fn to_permu(iv: &Rim<T>, out: &mut Permutation<T>) -> Result<(), Error>
Transforms a given insertion vector (RIM) into it’s permutation representation.
§Errors
Returns a LengthError if the length of the output permutation is not the length of the
given rim vector + 1.
§Example
use permu_rs::{ permutation::Permutation, rim::Rim };
let rim = Rim::<u8>::from_vec(vec![0,2,2]);
let mut output = Permutation::<u8>::identity(4);
Rim::<u8>::to_permu(&rim, &mut output).unwrap();
println!("insertion vector: {:?}", rim.inner);
println!("permutation: {:?}", output.permu);
let target = Permutation::from_vec(vec![1,0,3,2]).unwrap();
assert_eq!(target, output);Sourcepub fn from_permu(permu: &Permutation<T>, out: &mut Rim<T>) -> Result<(), Error>
pub fn from_permu(permu: &Permutation<T>, out: &mut Rim<T>) -> Result<(), Error>
Transforms a given permutation vector into it’s insertion vector (Rim) representation.
§Errors
Returns a LengthError if the length of the given permutation is not the length of the
output rim vector + 1.
§Example
use permu_rs::{ permutation::Permutation, rim::Rim };
let permu = Permutation::<u8>::from_vec(vec![1,0,3,2]).unwrap();
let mut rim = Rim::<u8>::zeros(3);
Rim::<u8>::from_permu(&permu, &mut rim).unwrap();
println!("permutation: {:?}", permu.permu);
println!("insertion vector: {:?}", rim.inner);
let target = Rim::<u8>::from_vec(vec![0,2,2]);
assert_eq!(target, rim);Trait Implementations§
impl<T> StructuralPartialEq for Rim<T>
Auto Trait Implementations§
impl<T> Freeze for Rim<T>
impl<T> RefUnwindSafe for Rim<T>where
T: RefUnwindSafe,
impl<T> Send for Rim<T>where
T: Send,
impl<T> Sync for Rim<T>where
T: Sync,
impl<T> Unpin for Rim<T>where
T: Unpin,
impl<T> UnwindSafe for Rim<T>where
T: UnwindSafe,
Blanket Implementations§
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
Mutably borrows from an owned value. Read more