proc_getter 0.0.3

make retriving infomations from /proc/* easier
Documentation
use crate::{Error, Result};
use std::str::FromStr;

/// represent an entry in /proc/misc
#[derive(Debug)]
pub struct Misc {
    device: usize,
    driver: String,
}

impl Misc {
    getter_gen! {
        device: usize,
        driver: String
    }
}

impl FromStr for Misc {
    type Err = Error;

    fn from_str(value: &str) -> Result<Self> {
        let columns: Vec<&str> = value.trim().split_ascii_whitespace().collect();
        if columns.len() != 2 {
            return Err(Error::BadFormat);
        }
        Ok(Misc {
            device: columns[0].parse::<usize>()?,
            driver: columns[1].to_string(),
        })
    }
}

#[inline(always)]
fn to_misc(line: &str) -> Result<Misc> {
    Misc::from_str(line)
}

default_list! { misc, "/proc/misc", Misc, to_misc }