summaryrefslogtreecommitdiff
path: root/src/csets.rs
diff options
context:
space:
mode:
authorBotahamec <botahamec@outlook.com>2023-07-30 19:49:53 -0400
committerBotahamec <botahamec@outlook.com>2023-07-30 19:49:53 -0400
commitf3c7e9717ba7679480aa71ecd5674d708b7837b0 (patch)
treed84d5da163a8350bbb9bbb2edc9ceb4898ed4a8b /src/csets.rs
parent5aa40e97ad88f36fb19429f613f1bbd93883a891 (diff)
Add derive traits
Diffstat (limited to 'src/csets.rs')
-rw-r--r--src/csets.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/csets.rs b/src/csets.rs
index a74d87b..f8f58a9 100644
--- a/src/csets.rs
+++ b/src/csets.rs
@@ -32,6 +32,7 @@ pub trait CharacterSet: Sized {
}
}
+#[derive(Debug, Clone, Copy)]
pub struct AnyCharacter;
impl CharacterSet for AnyCharacter {
@@ -40,6 +41,7 @@ impl CharacterSet for AnyCharacter {
}
}
+#[derive(Debug, Clone, Copy)]
pub struct Ascii;
impl CharacterSet for Ascii {
@@ -48,6 +50,7 @@ impl CharacterSet for Ascii {
}
}
+#[derive(Debug, Clone, Copy)]
pub struct AsciiDigits;
impl CharacterSet for AsciiDigits {
@@ -56,6 +59,7 @@ impl CharacterSet for AsciiDigits {
}
}
+#[derive(Debug, Clone, Copy)]
pub struct AsciiLowercase;
impl CharacterSet for AsciiLowercase {
@@ -64,6 +68,7 @@ impl CharacterSet for AsciiLowercase {
}
}
+#[derive(Debug, Clone, Copy)]
pub struct AsciiUppercase;
impl CharacterSet for AsciiUppercase {
@@ -72,6 +77,7 @@ impl CharacterSet for AsciiUppercase {
}
}
+#[derive(Debug, Clone, Copy)]
pub struct AsciiLetters;
impl CharacterSet for AsciiLetters {
@@ -104,6 +110,7 @@ impl CharacterSet for HashSet<char> {
}
}
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct CharacterSetUnion<A: CharacterSet, B: CharacterSet> {
first: A,
second: B,
@@ -115,6 +122,7 @@ impl<A: CharacterSet, B: CharacterSet> CharacterSet for CharacterSetUnion<A, B>
}
}
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct CharacterSetIntersection<A: CharacterSet, B: CharacterSet> {
first: A,
second: B,
@@ -126,6 +134,8 @@ impl<A: CharacterSet, B: CharacterSet> CharacterSet for CharacterSetIntersection
}
}
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+
pub struct CharacterSetDifference<A: CharacterSet, B: CharacterSet> {
first: A,
second: B,
@@ -137,6 +147,8 @@ impl<A: CharacterSet, B: CharacterSet> CharacterSet for CharacterSetDifference<A
}
}
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+
pub struct CharacterSetComplement<Inner: CharacterSet> {
inner: Inner,
}