Skip to content

Commit

Permalink
Merge pull request #45 from crackofdusk/avoid_unwrap
Browse files Browse the repository at this point in the history
Avoid `unwrap()`
  • Loading branch information
sgrif committed Dec 3, 2015
2 parents bc196e2 + 1c0cb71 commit bc0a99b
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 17 deletions.
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,11 @@ table! {
}

fn users_with_name(connection: &Connection, target_name: &str)
-> Vec<(i32, String, Option<String>)>
-> QueryResult<Vec<(i32, String, Option<String>)>>
{
use self::users::dsl::*;
users.filter(name.eq(target_name))
.load(connection)
.unwrap()
.collect()
users.filter(name.eq(target_name)).load(connection)
.map(|x| x.collect())
}
```

Expand Down Expand Up @@ -212,7 +210,7 @@ fn delete_user(connection: &Connection, user: User) -> QueryResult<()> {
use diesel::query_builder::delete;
use users::dsl::*;

delete(users.filter(id.eq(user.id))).execute(&connection).unwrap();
try!(delete(users.filter(id.eq(user.id))).execute(&connection));
debug_assert!(deleted_rows == 1);
Ok(())
}
Expand Down
2 changes: 1 addition & 1 deletion diesel/src/expression/count.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub fn count<T: Expression>(t: T) -> Count<T> {
/// # fn main() {
/// # use self::users::dsl::*;
/// # let connection = establish_connection();
/// assert_eq!(Some(2), users.select(count_star()).first(&connection).unwrap());
/// assert_eq!(Ok(Some(2)), users.select(count_star()).first(&connection));
/// # }
pub fn count_star() -> CountStar {
CountStar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ pub trait ExpressionMethods: Expression + Sized {
/// # use self::users::dsl::*;
/// # let connection = establish_connection();
/// let data = users.select(id).filter(name.eq("Sean"));
/// assert_eq!(1, data.first(&connection).unwrap());
/// assert_eq!(Ok(1), data.first(&connection));
/// # }
/// ```
fn eq<T: AsExpression<Self::SqlType>>(self, other: T) -> Eq<Self, T::Expression> {
Expand All @@ -69,7 +69,7 @@ pub trait ExpressionMethods: Expression + Sized {
/// # use self::users::dsl::*;
/// # let connection = establish_connection();
/// let data = users.select(id).filter(name.ne("Sean"));
/// assert_eq!(2, data.first(&connection).unwrap());
/// assert_eq!(Ok(2), data.first(&connection));
/// # }
/// ```
fn ne<T: AsExpression<Self::SqlType>>(self, other: T) -> NotEq<Self, T::Expression> {
Expand Down
18 changes: 14 additions & 4 deletions diesel/src/query_builder/functions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ use super::IncompleteInsertStatement;
/// # let connection = establish_connection();
/// let command = update(users.filter(id.eq(1)))
/// .set(name.eq("James"));
/// let updated_row = connection.query_one(command).unwrap();
/// let updated_row = connection.query_one(command);
/// // When passed to `query_one`, the update statement will gain `RETURNING *`
/// assert_eq!((1, "James".to_string()), updated_row);
/// assert_eq!(Ok((1, "James".to_string())), updated_row);
/// # }
/// ```
pub fn update<T: UpdateTarget>(source: T) -> IncompleteUpdateStatement<T> {
Expand All @@ -58,13 +58,18 @@ pub fn update<T: UpdateTarget>(source: T) -> IncompleteUpdateStatement<T> {
/// # }
/// #
/// # fn main() {
/// # delete();
/// # }
/// #
/// # fn delete() -> QueryResult<()> {
/// # use self::users::dsl::*;
/// # use diesel::query_builder::delete;
/// # let connection = establish_connection();
/// # let get_count = || users.count().first::<i64>(&connection).unwrap();
/// let old_count = get_count();
/// delete(users.filter(id.eq(1))).execute(&connection).unwrap();
/// try!(delete(users.filter(id.eq(1))).execute(&connection));
/// assert_eq!(old_count - 1, get_count());
/// # Ok(())
/// # }
/// ```
///
Expand All @@ -82,12 +87,17 @@ pub fn update<T: UpdateTarget>(source: T) -> IncompleteUpdateStatement<T> {
/// # }
/// #
/// # fn main() {
/// # delete();
/// # }
/// #
/// # fn delete() -> QueryResult<()> {
/// # use self::users::dsl::*;
/// # use diesel::query_builder::delete;
/// # let connection = establish_connection();
/// # let get_count = || users.count().first::<i64>(&connection).unwrap();
/// delete(users).execute(&connection).unwrap();
/// try!(delete(users).execute(&connection));
/// assert_eq!(0, get_count());
/// # Ok(())
/// # }
/// ```
pub fn delete<T: UpdateTarget>(source: T) -> DeleteStatement<T> {
Expand Down
8 changes: 4 additions & 4 deletions diesel/src/query_dsl/filter_dsl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ use types::Bool;
/// # use self::users::dsl::*;
/// # let connection = establish_connection();
/// let seans_id = users.filter(name.eq("Sean")).select(id)
/// .first(&connection).unwrap();
/// assert_eq!(1, seans_id);
/// .first(&connection);
/// assert_eq!(Ok(1), seans_id);
/// let tess_id = users.filter(name.eq("Tess")).select(id)
/// .first(&connection).unwrap();
/// assert_eq!(2, tess_id);
/// .first(&connection);
/// assert_eq!(Ok(2), tess_id);
/// # }
/// ```
pub trait FilterDsl<Predicate: Expression<SqlType=Bool> + NonAggregate> {
Expand Down

0 comments on commit bc0a99b

Please sign in to comment.