summaryrefslogtreecommitdiffstats
path: root/vendor/papergrid/src/config/line.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/papergrid/src/config/line.rs')
-rw-r--r--vendor/papergrid/src/config/line.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/papergrid/src/config/line.rs b/vendor/papergrid/src/config/line.rs
new file mode 100644
index 000000000..c3089e1c4
--- /dev/null
+++ b/vendor/papergrid/src/config/line.rs
@@ -0,0 +1,42 @@
+/// A line data structure.
+#[derive(Debug, Clone, Copy, Eq, PartialEq, PartialOrd, Ord)]
+pub struct Line<T> {
+ /// A horizontal/vertical character.
+ pub main: T,
+ /// A horizontal/vertical intersection.
+ pub intersection: Option<T>,
+ /// A horizontal left / vertical top intersection.
+ pub connect1: Option<T>,
+ /// A horizontal right / vertical bottom intersection.
+ pub connect2: Option<T>,
+}
+
+impl<T> Line<T> {
+ /// Creates a new line.
+ pub const fn new(
+ main: T,
+ intersection: Option<T>,
+ connect1: Option<T>,
+ connect2: Option<T>,
+ ) -> Self {
+ Self {
+ main,
+ intersection,
+ connect1,
+ connect2,
+ }
+ }
+
+ /// Creates a new line.
+ pub const fn filled(val: T) -> Self
+ where
+ T: Copy,
+ {
+ Self {
+ main: val,
+ intersection: Some(val),
+ connect1: Some(val),
+ connect2: Some(val),
+ }
+ }
+}