Cleanup readme
This commit is contained in:
parent
99f08b418d
commit
22676ff512
1 changed files with 9 additions and 11 deletions
20
readme.md
20
readme.md
|
|
@ -1,6 +1,6 @@
|
||||||
# Vet
|
# Vet
|
||||||
|
|
||||||
A library for validation of arbitrary types.
|
Arbitrary type validation.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|
@ -46,24 +46,22 @@ impl Vet for Username {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Vetted types provide safety guarantees for the types contents.
|
`Valid`-wrapped types provide safety guarantees about their contents.
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
fn main() {
|
fn main() {
|
||||||
let args: Vec<String> = env::args().collect();
|
let args: Vec<String> = env::args().collect();
|
||||||
let username = Username(args[1].clone());
|
|
||||||
|
let username: Username = Username(args[1].clone());
|
||||||
|
let username: Result<Valid<Username>, InvalidUsername> = username.vet();
|
||||||
|
|
||||||
// If successfully vetted, the username will be wrapped in a `Valid` struct
|
match username {
|
||||||
match username.vet() {
|
Ok(n) => create_account(n),
|
||||||
Ok(username) => create_account(username),
|
Err(e) => eprintln!("Invalid username: {:?}", e),
|
||||||
Err(InvalidUsername::TooShort) => eprintln!("Username too short! (3 min)"),
|
|
||||||
Err(InvalidUsername::TooLong) => eprintln!("Username too long! (32 max)"),
|
|
||||||
Err(InvalidUsername::InvalidChar) => eprintln!("Username contains invalid characters!"),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Any `Valid<Username>` passed is guaranteed
|
// Any `Valid<Username>` passed is guaranteed to be 3-32 alphanumeric characters.
|
||||||
// to have met the arbitrary validation checks.
|
|
||||||
fn create_account(username: Valid<Username>) {
|
fn create_account(username: Valid<Username>) {
|
||||||
let username = username.into_inner(); // Unwrap
|
let username = username.into_inner(); // Unwrap
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue