wolf-graph-dot 0.1.0

Adds support for generating Graphviz DOT files from wolf-graph graphs.
Documentation

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum NodeShape {
    Box,
    Polygon,
    Ellipse,
    Oval,
    Circle,
    Point,
    Egg,
    Triangle,
    Plaintext,
    Plain,
    Diamond,
    Trapezium,
    Parallelogram,
    House,
    Pentagon,
    Hexagon,
    Septagon,
    Octagon,
    Doublecircle,
    Doubleoctagon,
    Tripleoctagon,
    Invtriangle,
    Invtrapezium,
    Invhouse,
    Mdiamond,
    Msquare,
    Mcircle,
    Rect,
    Rectangle,
    Square,
    Star,
    None,
    Underline,
    Cylinder,
    Note,
    Tab,
    Folder,
    Box3d,
    Component,
    Promoter,
    Cds,
    Terminator,
    Utr,
    Primersite,
    Restrictionsite,
    Fivepoverhang,
    Threepoverhang,
    Noverhang,
    Assembly,
    Signature,
    Insulator,
    Ribosite,
    Rnastab,
    Proteasesite,
    Proteinstab,
    Rpromoter,
    Rarrow,
    Larrow,
    Lpromoter,
}

impl std::fmt::Display for NodeShape {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let value = match self {
            NodeShape::Box => "box",
            NodeShape::Polygon => "polygon",
            NodeShape::Ellipse => "ellipse",
            NodeShape::Oval => "oval",
            NodeShape::Circle => "circle",
            NodeShape::Point => "point",
            NodeShape::Egg => "egg",
            NodeShape::Triangle => "triangle",
            NodeShape::Plaintext => "plaintext",
            NodeShape::Plain => "plain",
            NodeShape::Diamond => "diamond",
            NodeShape::Trapezium => "trapezium",
            NodeShape::Parallelogram => "parallelogram",
            NodeShape::House => "house",
            NodeShape::Pentagon => "pentagon",
            NodeShape::Hexagon => "hexagon",
            NodeShape::Septagon => "septagon",
            NodeShape::Octagon => "octagon",
            NodeShape::Doublecircle => "doublecircle",
            NodeShape::Doubleoctagon => "doubleoctagon",
            NodeShape::Tripleoctagon => "tripleoctagon",
            NodeShape::Invtriangle => "invtriangle",
            NodeShape::Invtrapezium => "invtrapezium",
            NodeShape::Invhouse => "invhouse",
            NodeShape::Mdiamond => "Mdiamond",
            NodeShape::Msquare => "Msquare",
            NodeShape::Mcircle => "Mcircle",
            NodeShape::Rect => "rect",
            NodeShape::Rectangle => "rectangle",
            NodeShape::Square => "square",
            NodeShape::Star => "star",
            NodeShape::None => "none",
            NodeShape::Underline => "underline",
            NodeShape::Cylinder => "cylinder",
            NodeShape::Note => "note",
            NodeShape::Tab => "tab",
            NodeShape::Folder => "folder",
            NodeShape::Box3d => "box3d",
            NodeShape::Component => "component",
            NodeShape::Promoter => "promoter",
            NodeShape::Cds => "cds",
            NodeShape::Terminator => "terminator",
            NodeShape::Utr => "utr",
            NodeShape::Primersite => "primersite",
            NodeShape::Restrictionsite => "restrictionsite",
            NodeShape::Fivepoverhang => "fivepoverhang",
            NodeShape::Threepoverhang => "threepoverhang",
            NodeShape::Noverhang => "noverhang",
            NodeShape::Assembly => "assembly",
            NodeShape::Signature => "signature",
            NodeShape::Insulator => "insulator",
            NodeShape::Ribosite => "ribosite",
            NodeShape::Rnastab => "rnastab",
            NodeShape::Proteasesite => "proteasesite",
            NodeShape::Proteinstab => "proteinstab",
            NodeShape::Rpromoter => "rpromoter",
            NodeShape::Rarrow => "rarrow",
            NodeShape::Larrow => "larrow",
            NodeShape::Lpromoter => "lpromoter",
        };
        write!(f, "{}", value)
    }
}