wolf_graph_mermaid/details/
node_shape.rs

1//    import Foundation
2//
3//    public enum NodeShape: String {
4//        case rectangle
5//        case rounded
6//        case stadium
7//        case subroutine
8//        case cylinder
9//        case circle
10//        case asymmetric
11//        case rhombus
12//        case hexagon
13//        case parallelogram
14//        case parallelogramAlt
15//        case trapezoid
16//        case trapezoidAlt
17//        case doubleCircle
18//
19//        var delimiters: (String, String) {
20//            switch self {
21//            case .rectangle:
22//                return ("[", "]")
23//            case .rounded:
24//                return ("(", ")")
25//            case .stadium:
26//                return ("([", "])")
27//            case .subroutine:
28//                return ("[[", "]]")
29//            case .cylinder:
30//                return ("[(", ")]")
31//            case .circle:
32//                return ("((", "))")
33//            case .asymmetric:
34//                return (">", "]")
35//            case .rhombus:
36//                return ("{", "}")
37//            case .hexagon:
38//                return ("{{", "}}")
39//            case .parallelogram:
40//                return ("[/", "/]")
41//            case .parallelogramAlt:
42//                return ("[\\", "\\]")
43//            case .trapezoid:
44//                return ("[/", "\\]")
45//            case .trapezoidAlt:
46//                return ("[\\", "/]")
47//            case .doubleCircle:
48//                return ("(((", ")))")
49//            }
50//        }
51//    }
52
53#[derive(Debug, Clone, PartialEq)]
54pub enum NodeShape {
55    Rectangle,
56    Rounded,
57    Stadium,
58    Subroutine,
59    Cylinder,
60    Circle,
61    Asymmetric,
62    Rhombus,
63    Hexagon,
64    Parallelogram,
65    ParallelogramAlt,
66    Trapezoid,
67    TrapezoidAlt,
68    DoubleCircle,
69}
70
71impl NodeShape {
72    pub fn delimiters(&self) -> (&'static str, &'static str) {
73        match self {
74            NodeShape::Rectangle => ("[", "]"),
75            NodeShape::Rounded => ("(", ")"),
76            NodeShape::Stadium => ("([", "])"),
77            NodeShape::Subroutine => ("[[", "]]"),
78            NodeShape::Cylinder => ("[(", ")]"),
79            NodeShape::Circle => ("((", "))"),
80            NodeShape::Asymmetric => (">", "]"),
81            NodeShape::Rhombus => ("{", "}"),
82            NodeShape::Hexagon => ("{{", "}}"),
83            NodeShape::Parallelogram => ("[/", "/]"),
84            NodeShape::ParallelogramAlt => ("[\\", "\\]"),
85            NodeShape::Trapezoid => ("[/", "\\]"),
86            NodeShape::TrapezoidAlt => ("[\\", "/]"),
87            NodeShape::DoubleCircle => ("(((", ")))"),
88        }
89    }
90}