diesel/expression/not.rs
1use expression::grouped::Grouped;
2use expression::AsExpression;
3use helper_types::not;
4use sql_types::Bool;
5
6/// Creates a SQL `NOT` expression
7///
8/// # Example
9///
10/// ```rust
11/// # #[macro_use] extern crate diesel;
12/// # include!("../doctest_setup.rs");
13/// #
14/// # fn main() {
15/// # use schema::users::dsl::*;
16/// # let connection = establish_connection();
17/// use diesel::dsl::not;
18///
19/// let users_with_name = users.select(id).filter(name.eq("Sean"));
20/// let users_not_with_name = users.select(id).filter(
21/// not(name.eq("Sean")));
22///
23/// assert_eq!(Ok(1), users_with_name.first(&connection));
24/// assert_eq!(Ok(2), users_not_with_name.first(&connection));
25/// # }
26/// ```
27pub fn not<T: AsExpression<Bool>>(expr: T) -> not<T> {
28 super::operators::Not::new(Grouped(expr.as_expression()))
29}