hostab 0.0.2

Your dev tool to manage /etc/hosts like a pro — written in Rust
Documentation
use super::model::Entry;

pub fn serialize(entries: &[Entry]) -> String {
    let mut output = String::new();
    for entry in entries {
        if entry.disabled {
            output.push_str("# ");
        }
        output.push_str(&entry.ip);
        output.push(' ');
        output.push_str(&entry.hostnames.join(" "));
        if let Some(ref c) = entry.comment {
            if !c.is_empty() {
                output.push_str(" # ");
                output.push_str(c);
            }
        }
        output.push('\n');
    }
    output
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::core::parser::parse;

    #[test]
    fn test_round_trip() {
        let input = "127.0.0.1 localhost\n::1 localhost\n10.0.0.1 app.local api.local # dev\n";
        let entries = parse(input);
        let output = serialize(&entries);
        let reparsed = parse(&output);
        assert_eq!(reparsed.len(), 3);
    }
}