fixcol 0.2.0

A library for reading and writing fixed width / column delimited data files.
Documentation
extern crate fixcol;

use fixcol::ReadFixed;
#[cfg(feature = "experimental-write")]
use fixcol::WriteFixed;

#[cfg_attr(feature = "experimental-write", derive(WriteFixed))]
#[derive(Debug, Eq, PartialEq, ReadFixed)]
struct Color(
    #[fixcol(width = 3, align = "right")] u8,
    #[fixcol(skip = 1, width = 3, align = "right")] u8,
    #[fixcol(skip = 1, width = 3, align = "right")] u8,
);

#[test]
fn derive_read() {
    let mut buf = "255 255  64".as_bytes();

    let color = Color::read_fixed(&mut buf).unwrap();
    assert_eq!(color, Color(255, 255, 64));
}

#[cfg(feature = "experimental-write")]
#[test]
fn derive_write() {
    let mut buf = Vec::new();
    let res = Color(0, 128, 42).write_fixed(&mut buf);

    assert!(res.is_ok());

    let s = std::str::from_utf8(buf.as_slice()).unwrap();
    assert_eq!(s, "  0 128  42");
}