STRONG   crates.io MIT

Strongly typed String for Rust

Rust is a statically and strongly typed systems programming language. We can create a new type wrapping primitives. rust struct Age(i32); struct Email(String); There is a problem here, there are two types of strings in Rust, and it is hard to create strong types for both String and &str.

STRONG provides two types owned StrongBuf and unsized Strong. ```rust use strong::{StrongBuf, Strong, Email, Validator}

fn login(email: &Strong, password: &strong) { .. }

let email: StrongBuf = .. let password: StrongBuf = .. login(&email, password); `` Emailrequiressome_validators` feature.

Getting Started

```rust use strong::{StrongBuf, Strong, Validator, Email}

enum Password {} impl Validator for Password { type Err = std::convert::Infallible; }

let email: StrongBuf = StrongBuf::validate("foo".to_string()); let password: &Strong = Strong::validate("bar"); ```

License

Licensed under MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)

Contributing

welcome!