diff --git a/README.md b/README.md index 17c005c..d580126 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,24 @@ enum Website { assert_eq!(Website::try_unscribe("GiThUb.CoM"), Some(Website::Github)); ``` +The same attribute can be used on the enum itself to make all variants case-insensitive. Individual fields may opt back +in to case sensitivity with `#[enumscribe(case_sensitive)]`. + +```rust +use enumscribe::TryUnscribe; + +#[derive(TryUnscribe, PartialEq, Eq, Debug)] +#[case_insensitive] +enum Website { + #[enumscribe(str = "github.com")] + Github, + #[enumscribe(str = "crates.io")] + CratesDotIo, +} + +assert_eq!(Website::try_unscribe("CrAtEs.Io"), Some(Website::CratesDotIo)); +``` + ### "other" variant You can also have a variant which stores strings that could not be matched to any other variant. This is done using the `#[enumscribe(other)]` attribute. The variant should have a single field, which is a `String`. diff --git a/enumscribe/src/lib.rs b/enumscribe/src/lib.rs index c454464..896b80a 100644 --- a/enumscribe/src/lib.rs +++ b/enumscribe/src/lib.rs @@ -42,6 +42,24 @@ //! //! assert_eq!(Website::try_unscribe("GiThUb.CoM"), Some(Website::Github)); //! ``` +//! +//! The same attribute can be used on the enum itself to make all variants case-insensitive. Individual fields may opt back +//! in to case sensitivity with `#[enumscribe(case_sensitive)]`. + +//! ```rust +//! use enumscribe::TryUnscribe; +//! +//! #[derive(TryUnscribe, PartialEq, Eq, Debug)] +//! #[enumscribe(case_insensitive)] +//! enum Website { +//! #[enumscribe(str = "github.com")] +//! Github, +//! #[enumscribe(str = "crates.io")] +//! CratesDotIo, +//! } + +//! assert_eq!(Website::try_unscribe("CrAtEs.Io"), Some(Website::CratesDotIo)); +//! ``` //! //! You can also have a variant which stores strings that could not be matched to any other //! variant. This is done using the `#[enumscribe(other)]` attribute. The variant should have a