refactory_string 0.1.1

A library to modify a string using original indices. Useful for Source Code transformations.
Documentation
#![cfg(test)]

use crate::error::Error;
use crate::RefactoryBuffer;

#[test]
fn basic() -> Result<(), Error> {
    let content = vec![0, 1, 2, 3, 4, 5, 6, 7, 8];
    let mut buffer = RefactoryBuffer::new(&content);

    buffer.prepend_left(3, &[10])?;
    assert_eq!(buffer.to_bytes()?, vec![0, 1, 2, 10, 3, 4, 5, 6, 7, 8]);

    buffer.append_right(3, &[11])?;
    assert_eq!(buffer.to_bytes()?, vec![0, 1, 2, 10, 11, 3, 4, 5, 6, 7, 8]);

    Ok(())
}

#[test]
fn remove() -> Result<(), Error> {
    let content = vec![0, 1, 2, 3, 4, 5, 6, 7, 8];
    let mut buffer = RefactoryBuffer::new(&content);

    buffer.remove(1, 3)?;
    assert_eq!(buffer.to_bytes()?, vec![0, 3, 4, 5, 6, 7, 8]);

    buffer.remove(3, 6)?;
    assert_eq!(buffer.to_bytes()?, vec![0, 6, 7, 8]);

    buffer.remove(4, 5)?;
    assert_eq!(buffer.to_bytes()?, vec![0, 6, 7, 8]);

    buffer.append_left(5, &[10])?;
    buffer.append_right(5, &[11])?;
    buffer.prepend_left(5, &[12])?;
    buffer.prepend_right(5, &[13])?;
    assert_eq!(buffer.to_bytes()?, vec![0, 6, 7, 8]);

    Ok(())
}