rbatis-codegen 4.9.4

The Rust SQL Toolkit and ORM Library. An async, pure Rust SQL crate featuring compile-time Dynamic SQL gen system
Documentation
use rbatis_codegen::ops::{BitShl, BitShr};
use rbs::Value;

#[test]
fn test_shift_reference_matrix() {
    let shifted = Value::I64(8);
    let amount = Value::I64(2);

    assert_eq!((&shifted).op_shl(&&amount), Value::I64(32));
    assert_eq!((&shifted).op_shr(&&amount), Value::I64(2));
    assert_eq!((&&shifted).op_shl(&Value::I64(2)), Value::I64(32));
    assert_eq!((&&shifted).op_shr(2i64), 2i64);
}

#[test]
fn test_shift_primitive_matrix() {
    assert_eq!(8i64.op_shl(&Value::I64(2)), 32i64);
    assert_eq!((&8i64).op_shl(&&Value::I64(2)), 32i64);
    assert_eq!(8i64.op_shr(&Value::I64(2)), 2i64);
    assert_eq!((&8i64).op_shr(&&Value::I64(2)), 2i64);
}

#[test]
fn test_shift_primitive_overflow_is_safe() {
    assert_eq!(1u8.op_shl(8u8), 0u8);
    assert_eq!(1u8.op_shr(8u8), 0u8);
    assert_eq!(1i64.op_shl(-1i64), 0i64);
}