diff --git a/Cargo.toml b/Cargo.toml index 8acfbbf..e8ce867 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,7 @@ categories = ["algorithms"] repository = "https://github.com/becheran/wildmatch" [dependencies] +serde = { version = "1.0", features = ["derive"], optional = true } [dev-dependencies] ntest = "0.7.3" @@ -18,6 +19,9 @@ criterion = "0.3.4" regex = "1.4.3" glob = "0.3.0" +[features] +serde = ["dep:serde"] + [[bench]] name = "patterns" harness = false diff --git a/src/lib.rs b/src/lib.rs index 866e0ed..dc80529 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,13 +27,18 @@ use std::fmt; +#[cfg(feature = "serde")] +use serde::{Deserialize, Serialize}; + /// Wildcard matcher used to match strings. +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[derive(Debug, Clone, PartialEq, Default)] pub struct WildMatch { pattern: Vec, max_questionmarks: usize, } +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[derive(Debug, Clone, PartialEq)] struct State { next_char: Option,