Trait diesel::result::OptionalExtension[][src]

pub trait OptionalExtension<T> {
    fn optional(self) -> Result<Option<T>, Error>;

See the method documentation.

Required methods

fn optional(self) -> Result<Option<T>, Error>[src]

Converts a QueryResult<T> into a QueryResult<Option<T>>.

By default, Diesel treats 0 rows being returned from a query that is expected to return 1 row as an error (e.g. the return value of get_result or first). This method will handle that error, and give you back an Option<T> instead.


use diesel::{QueryResult, NotFound, OptionalExtension};

let result: QueryResult<i32> = Ok(1);
assert_eq!(Ok(Some(1)), result.optional());

let result: QueryResult<i32> = Err(NotFound);
assert_eq!(Ok(None), result.optional());
Loading content...


impl<T> OptionalExtension<T> for QueryResult<T>[src]

Loading content...