Expand description
§Overview
// Convert Option<i32> to Result<i32, NotFoundError<i32>>
assert_eq!(Some(10).require(), Ok(10));
assert_eq!(None.require(), Err(NotFoundError::<i32>::new()));
This crate provides a generic NotFoundError<T>
type and associated
utilities for handling “not found” scenarios in a type-safe and ergonomic manner.
You can convert Option<T>
to Result<T, NotFoundError<T>
using require
function or Require
extension trait.
You can convert Option<T>
to Result<T, NotFoundError<AnotherType>
using not_found
function or OkOrNotFound
extension trait.
§Features
-
Generic
NotFoundError<T>
type -
Conversion functions and traits to transform
Option<T>
intoResult<T, NotFoundError<T>>
-
Conversion functions and traits to transform
Option<T>
intoResult<T, NotFoundError<AnotherType>>
§Examples
use not_found_error::{NotFoundError, Require, locate, require};
// Using the `require` function
let item = require([1, 2, 3].into_iter().next());
assert_eq!(item, Ok(1));
// Using the `require` function
let item = require([].into_iter().next());
assert_eq!(item, Err(NotFoundError::<i32>::new()));
// Using the `require` extension method
let item = [1, 2, 3].into_iter().next().require();
assert_eq!(item, Ok(1));
// Using the `require` extension method
let item = [].into_iter().next().require();
assert_eq!(item, Err(NotFoundError::<i32>::new()));
// Try to find a number greater than 10 (which doesn't exist in our list)
let numbers = &[1, 2, 3];
let result = locate(numbers, |&&n| n == 0);
assert_eq!(result, Err(NotFoundError::new()));
Structs§
- NotFound
Error - Represents an error indicating that a value was not found.
Traits§
- OkOr
NotFound - An extension trait for
Option<T>
to convert it toResult<T, NotFoundError<AnotherType>>
- Require
- An extension trait for
Option<T>
to convert it toResult<T, NotFoundError<T>>
Functions§
- locate
- Searches an iterator for an element that satisfies a given predicate and returns a reference to it.
- not_
found - A shorter version of
NotFoundError::new()
. - require
- Converts
Option<T>
toResult<T, NotFoundError<T>>
Type Aliases§
- Result
- A type alias for
Result<T, NotFoundError<T>>