Rename wrapper struct to "Valid"
This commit is contained in:
parent
a8312990b0
commit
53b1ae7524
2 changed files with 9 additions and 9 deletions
|
|
@ -12,7 +12,7 @@ vet = "0.1"
|
||||||
```
|
```
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
use vet::{Vet, Vetted};
|
use vet::Vet;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
struct Username(String);
|
struct Username(String);
|
||||||
|
|
|
||||||
16
src/lib.rs
16
src/lib.rs
|
|
@ -6,9 +6,9 @@
|
||||||
//!
|
//!
|
||||||
//! The `Vet` trait also provides a default implementation of a `vet` method
|
//! The `Vet` trait also provides a default implementation of a `vet` method
|
||||||
//! which, dependant on the result of `is_valid`, either wraps the instance with
|
//! which, dependant on the result of `is_valid`, either wraps the instance with
|
||||||
//! a `Vetted<T>` struct or propagates the validation error.
|
//! a `Valid<T>` struct or propagates the validation error.
|
||||||
//!
|
//!
|
||||||
//! The `Vetted<T>` wrapper guarantees that the inner value was successfully
|
//! The `Valid<T>` wrapper guarantees that the inner value was successfully
|
||||||
//! validated and remains immutable as long as it is wrapped.
|
//! validated and remains immutable as long as it is wrapped.
|
||||||
//!
|
//!
|
||||||
//! Implementations for the common standard library types `Vec<T>` and
|
//! Implementations for the common standard library types `Vec<T>` and
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
//! # Examples
|
//! # Examples
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! use vet::{Vet, Vetted};
|
//! use vet::{Valid, Vet};
|
||||||
//!
|
//!
|
||||||
//! #[derive(Debug)]
|
//! #[derive(Debug)]
|
||||||
//! struct Username(String);
|
//! struct Username(String);
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! fn create_account(username: Vetted<Username>) {
|
//! fn create_account(username: Valid<Username>) {
|
||||||
//! println!("Account {:?} created", username);
|
//! println!("Account {:?} created", username);
|
||||||
//! }
|
//! }
|
||||||
//! ```
|
//! ```
|
||||||
|
|
@ -69,9 +69,9 @@ extern crate alloc;
|
||||||
|
|
||||||
/// A wrapper around a validated instance
|
/// A wrapper around a validated instance
|
||||||
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||||
pub struct Vetted<T>(T);
|
pub struct Valid<T>(T);
|
||||||
|
|
||||||
impl<T> core::ops::Deref for Vetted<T> {
|
impl<T> core::ops::Deref for Valid<T> {
|
||||||
type Target = T;
|
type Target = T;
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target {
|
fn deref(&self) -> &Self::Target {
|
||||||
|
|
@ -88,12 +88,12 @@ pub trait Vet {
|
||||||
fn is_valid(&self) -> Result<(), Self::VetError>;
|
fn is_valid(&self) -> Result<(), Self::VetError>;
|
||||||
|
|
||||||
/// Validates this instance and results in a wrapped instance if successful.
|
/// Validates this instance and results in a wrapped instance if successful.
|
||||||
fn vet(self) -> Result<Vetted<Self>, Self::VetError>
|
fn vet(self) -> Result<Valid<Self>, Self::VetError>
|
||||||
where
|
where
|
||||||
Self: Sized,
|
Self: Sized,
|
||||||
{
|
{
|
||||||
match self.is_valid() {
|
match self.is_valid() {
|
||||||
Ok(()) => Ok(Vetted(self)),
|
Ok(()) => Ok(Valid(self)),
|
||||||
Err(e) => Err(e),
|
Err(e) => Err(e),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue