@@ -1299,6 +1299,72 @@ pub trait ExprTrait: Sized {
12991299 /// );
13001300 /// ```
13011301 fn unary ( self , o : UnOper ) -> SimpleExpr ;
1302+
1303+ /// Express a bitwise AND operation.
1304+ ///
1305+ /// # Examples
1306+ ///
1307+ /// ```
1308+ /// use sea_query::{tests_cfg::*, *};
1309+ ///
1310+ /// let query = Query::select()
1311+ /// .columns([Char::Character, Char::SizeW, Char::SizeH])
1312+ /// .from(Char::Table)
1313+ /// .and_where(1.bit_and(1).eq(1))
1314+ /// .to_owned();
1315+ ///
1316+ /// assert_eq!(
1317+ /// query.to_string(MysqlQueryBuilder),
1318+ /// r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE (1 & 1) = 1"#
1319+ /// );
1320+ /// assert_eq!(
1321+ /// query.to_string(PostgresQueryBuilder),
1322+ /// r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE (1 & 1) = 1"#
1323+ /// );
1324+ /// assert_eq!(
1325+ /// query.to_string(SqliteQueryBuilder),
1326+ /// r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE (1 & 1) = 1"#
1327+ /// );
1328+ /// ```
1329+ fn bit_and < R > ( self , right : R ) -> SimpleExpr
1330+ where
1331+ R : Into < SimpleExpr > ,
1332+ {
1333+ ExprTrait :: binary ( self , BinOper :: BitAnd , right)
1334+ }
1335+
1336+ /// Express a bitwise OR operation.
1337+ ///
1338+ /// # Examples
1339+ ///
1340+ /// ```
1341+ /// use sea_query::{tests_cfg::*, *};
1342+ ///
1343+ /// let query = Query::select()
1344+ /// .columns([Char::Character, Char::SizeW, Char::SizeH])
1345+ /// .from(Char::Table)
1346+ /// .and_where(1.bit_or(1).eq(1))
1347+ /// .to_owned();
1348+ ///
1349+ /// assert_eq!(
1350+ /// query.to_string(MysqlQueryBuilder),
1351+ /// r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE (1 | 1) = 1"#
1352+ /// );
1353+ /// assert_eq!(
1354+ /// query.to_string(PostgresQueryBuilder),
1355+ /// r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE (1 | 1) = 1"#
1356+ /// );
1357+ /// assert_eq!(
1358+ /// query.to_string(SqliteQueryBuilder),
1359+ /// r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE (1 | 1) = 1"#
1360+ /// );
1361+ /// ```
1362+ fn bit_or < R > ( self , right : R ) -> SimpleExpr
1363+ where
1364+ R : Into < SimpleExpr > ,
1365+ {
1366+ ExprTrait :: binary ( self , BinOper :: BitOr , right)
1367+ }
13021368}
13031369
13041370/// This generic implementation covers all expression types,
0 commit comments