From 46a627992b50a86b3c02db54b43e8f6aeaa28b6a Mon Sep 17 00:00:00 2001 From: smart_monkey Date: Sun, 1 Feb 2026 09:44:35 +0100 Subject: [PATCH] Add useful derives --- README.md | 8 +++----- src/curie.rs | 2 +- src/curie_parser.rs | 1 + src/lib.rs | 5 +++++ src/validators/regex_validator.rs | 2 +- tests/test_integration.rs | 4 +--- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 92789fe..e607607 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ securiety = "0.2.0" If you need to validate that a string is simply a well-formed CURIE (has a valid prefix and reference structure) without enforcing specific ontology patterns: ```Rust -use curie_validator::curie_parser::CurieParser; +use securiety::{CurieParser, CurieParsing}; fn main() { // Create a general parser @@ -45,7 +45,7 @@ let parser = CurieParser::general(); 2. Specific Ontology Validation You can use strict, pre-compiled regex validators for specific ontologies. This ensures that a GO term actually looks like a GO term (e.g., GO:0001234). ```Rust -use curie_validator::curie_parser::CurieParser; +use securiety::{CurieParser, CurieParsing}; fn main() { // strict validator for Gene Ontology @@ -63,9 +63,7 @@ let go_parser = CurieParser::go(); 3. Dynamic Prefix Lookup If you are processing data where the ontology prefix is determined at runtime, you can look up the validator dynamically: ```Rust - -use curie_validator::curie_parser::CurieParser; -use curie_validator::validators::regex_validator::CurieRegexValidator; +use securiety::{CurieParser, CurieParsing, CurieRegexValidator, CurieValidation}; fn main() { let input_prefix = "mondo"; diff --git a/src/curie.rs b/src/curie.rs index f96e07c..85f3df8 100644 --- a/src/curie.rs +++ b/src/curie.rs @@ -1,6 +1,6 @@ use std::fmt::{Display, Formatter}; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Hash, Eq, PartialOrd, Ord)] pub struct Curie { inner: String, prefix_len: usize, diff --git a/src/curie_parser.rs b/src/curie_parser.rs index 4611346..cef9837 100644 --- a/src/curie_parser.rs +++ b/src/curie_parser.rs @@ -2,6 +2,7 @@ use crate::curie::Curie; use crate::error::CurieParsingError; use crate::traits::{CurieParsing, CurieValidation}; +#[derive(Debug, Clone)] pub struct CurieParser { pub(crate) validator: Validator, } diff --git a/src/lib.rs b/src/lib.rs index 62c9d8d..4aa52ee 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,10 @@ pub mod curie; +pub use curie::Curie; pub mod curie_parser; +pub use curie_parser::CurieParser; pub mod error; +pub use error::*; pub mod traits; +pub use traits::*; pub mod validators; +pub use validators::regex_validator::CurieRegexValidator; diff --git a/src/validators/regex_validator.rs b/src/validators/regex_validator.rs index 3ad6b02..7ae799b 100644 --- a/src/validators/regex_validator.rs +++ b/src/validators/regex_validator.rs @@ -1,7 +1,7 @@ use crate::error::InvalidRegexError; use crate::traits::CurieValidation; use regex::Regex; - +#[derive(Debug, Clone)] pub struct CurieRegexValidator { regex: Regex, } diff --git a/tests/test_integration.rs b/tests/test_integration.rs index 3acf814..1ab85dc 100644 --- a/tests/test_integration.rs +++ b/tests/test_integration.rs @@ -1,6 +1,4 @@ -use securiety::curie_parser::CurieParser; -use securiety::traits::{CurieParsing, CurieValidation}; -use securiety::validators::regex_validator::CurieRegexValidator; +use securiety::{CurieParser, CurieParsing, CurieRegexValidator, CurieValidation}; #[test] fn test_integration_parsing() {