Expand description
Helpers for dealing with Options/Results of collections or other things
(like Strings) that may be empty.
§Examples
Always start by including the traits:
use optempty::*;These examples only show Vec<T>, but they support any type that implements
IsEmpty.
§empty_into_none
Some with an empty Vec becomes None.
use optempty::*;
let some: Option<Vec<&str>> = Some(vec![]);
let none = some.empty_into_none();
assert_eq!(None, none);Some with a non-empty Vec remains unchanged.
let some = Some(vec!["a", "b", "c"]);
let still_some = some.clone().empty_into_none();
assert_eq!(some, still_some);None remains unchanged.
let none: Option<Vec<&str>> = None;
let still_none = none.empty_into_none();
assert_eq!(None, still_none);§empty_into_err
Ok with an empty Vec becomes Err.
use optempty::*;
let ok: Result<Vec<&str>, &str> = Ok(vec![]);
let err = ok.empty_into_err(|| "was empty");
assert_eq!(Err("was empty"), err);Ok with a non-empty Vec remains unchanged.
let ok = Ok(vec!["a", "b", "c"]);
let still_ok = ok.empty_into_err(|| "was empty");
assert_eq!(Ok(vec!["a", "b", "c"]), still_ok);Err remains unchanged.
let err: Result<Vec<&str>, &str> = Err("failed");
let still_err = err.empty_into_err(|| "was empty");
assert_eq!(Err("failed"), still_err);See more examples at:
§Features
Available features are:
querymap- Adds support for
query_map::QueryMap
- Adds support for
serdejson- Adds support for
serde_json::Map
- Adds support for
std- Adds support for types in
std::collectionsin addition to types fromalloc.
- Adds support for types in
Default features:
std
Re-exports§
pub use empty_into_err::EmptyIntoErr;pub use empty_into_none::EmptyIntoNone;pub use is_empty::IsEmpty;