From f3c7e9717ba7679480aa71ecd5674d708b7837b0 Mon Sep 17 00:00:00 2001 From: Botahamec Date: Sun, 30 Jul 2023 19:49:53 -0400 Subject: Add derive traits --- src/csets.rs | 12 ++++++++++++ src/scanner.rs | 1 + 2 files changed, 13 insertions(+) (limited to 'src') 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 { } } +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct CharacterSetUnion { first: A, second: B, @@ -115,6 +122,7 @@ impl CharacterSet for CharacterSetUnion } } +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct CharacterSetIntersection { first: A, second: B, @@ -126,6 +134,8 @@ impl CharacterSet for CharacterSetIntersection } } +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + pub struct CharacterSetDifference { first: A, second: B, @@ -137,6 +147,8 @@ impl CharacterSet for CharacterSetDifference { inner: Inner, } diff --git a/src/scanner.rs b/src/scanner.rs index cfe2da9..f947205 100644 --- a/src/scanner.rs +++ b/src/scanner.rs @@ -1,5 +1,6 @@ use crate::csets::CharacterSet; +#[derive(Debug, Clone)] pub struct Scanner { source: Box<[char]>, position: usize, -- cgit v1.2.3