#[allow(deprecated)]
use structsy::{
internal::{EqualAction, FilterBuilder, QueryAction, RangeAction},
Filter, Ref,
};
use structsy_derive::{Persistent, PersistentEmbedded};
#[derive(Persistent)]
struct PersistentData {
test_string: String,
test_u8: u8,
test_u16: u16,
test_u32: u32,
test_u64: u64,
test_u128: u128,
test_i8: i8,
test_i16: i16,
test_i32: i32,
test_i64: i64,
test_i128: i128,
test_bool: bool,
test_f32: f32,
test_f64: f64,
test_option: Option<u8>,
test_vec: Vec<u8>,
test_ref: Ref<ReferedData>,
test_vec_bool: Vec<bool>,
test_embedded: EmbeddedData,
test_option_string: Option<String>,
}
#[derive(Persistent)]
struct ReferedData {
name: String,
}
#[test]
fn test_condition_filter_builder() {
let mut builder = FilterBuilder::<PersistentData>::new();
EqualAction::equal((PersistentData::field_test_string(), &mut builder), String::from("aaa"));
EqualAction::equal((PersistentData::field_test_string(), &mut builder), "aaa");
EqualAction::equal((PersistentData::field_test_u8(), &mut builder), 1u8);
EqualAction::equal((PersistentData::field_test_u16(), &mut builder), 1u16);
EqualAction::equal((PersistentData::field_test_u32(), &mut builder), 1u32);
EqualAction::equal((PersistentData::field_test_u64(), &mut builder), 1u64);
EqualAction::equal((PersistentData::field_test_u128(), &mut builder), 1u128);
EqualAction::equal((PersistentData::field_test_i8(), &mut builder), 1i8);
EqualAction::equal((PersistentData::field_test_i16(), &mut builder), 1i16);
EqualAction::equal((PersistentData::field_test_i32(), &mut builder), 1i32);
EqualAction::equal((PersistentData::field_test_i64(), &mut builder), 1i64);
EqualAction::equal((PersistentData::field_test_i128(), &mut builder), 1i128);
EqualAction::equal((PersistentData::field_test_f32(), &mut builder), 1f32);
EqualAction::equal((PersistentData::field_test_f64(), &mut builder), 1f64);
EqualAction::equal((PersistentData::field_test_bool(), &mut builder), true);
EqualAction::equal((PersistentData::field_test_vec(), &mut builder), Vec::<u8>::new());
EqualAction::equal((PersistentData::field_test_vec(), &mut builder), 1u8);
EqualAction::equal((PersistentData::field_test_option(), &mut builder), Some(1u8));
EqualAction::equal((PersistentData::field_test_option(), &mut builder), 1u8);
EqualAction::equal(
(PersistentData::field_test_ref(), &mut builder),
"ReferedData@s0c5a58".parse::<Ref<ReferedData>>().unwrap(),
);
EqualAction::equal(
(PersistentData::field_test_vec_bool(), &mut builder),
Vec::<bool>::new(),
);
EqualAction::equal((PersistentData::field_test_vec_bool(), &mut builder), true);
RangeAction::range(
(PersistentData::field_test_string(), &mut builder),
String::from("aaa")..String::from("b"),
);
RangeAction::range((PersistentData::field_test_string(), &mut builder), "aaa".."b");
RangeAction::range((PersistentData::field_test_u8(), &mut builder), 1u8..2u8);
RangeAction::range((PersistentData::field_test_u16(), &mut builder), 1u16..2u16);
RangeAction::range((PersistentData::field_test_u32(), &mut builder), 1u32..2u32);
RangeAction::range((PersistentData::field_test_u64(), &mut builder), 1u64..2u64);
RangeAction::range((PersistentData::field_test_u128(), &mut builder), 1u128..2u128);
RangeAction::range((PersistentData::field_test_i8(), &mut builder), 1i8..2i8);
RangeAction::range((PersistentData::field_test_i16(), &mut builder), 1i16..2i16);
RangeAction::range((PersistentData::field_test_i32(), &mut builder), 1i32..2i32);
RangeAction::range((PersistentData::field_test_i64(), &mut builder), 1i64..2i64);
RangeAction::range((PersistentData::field_test_i128(), &mut builder), 1i128..2i128);
RangeAction::range((PersistentData::field_test_f32(), &mut builder), 1f32..2f32);
RangeAction::range((PersistentData::field_test_f64(), &mut builder), 1f64..2f64);
RangeAction::range(
(PersistentData::field_test_vec(), &mut builder),
Vec::<u8>::new()..Vec::<u8>::new(),
);
RangeAction::range((PersistentData::field_test_vec(), &mut builder), 1u8..2u8);
RangeAction::range(
(PersistentData::field_test_option(), &mut builder),
Some(1u8)..Some(2u8),
);
RangeAction::range((PersistentData::field_test_option(), &mut builder), 1u8..2u8);
let first = "ReferedData@s0c5a58".parse::<Ref<ReferedData>>().unwrap();
let second = "ReferedData@s0c5a58".parse::<Ref<ReferedData>>().unwrap();
RangeAction::range((PersistentData::field_test_ref(), &mut builder), first..second);
QueryAction::query(
(PersistentData::field_test_embedded(), &mut builder),
Filter::<EmbeddedData>::new(),
);
EqualAction::equal(
(PersistentData::field_test_option_string(), &mut builder),
Some(String::from("aaa")),
);
EqualAction::equal(
(PersistentData::field_test_option_string(), &mut builder),
String::from("aaa"),
);
EqualAction::equal((PersistentData::field_test_option_string(), &mut builder), "aaa");
}
#[derive(PersistentEmbedded)]
struct EmbeddedData {
test_string: String,
test_u8: u8,
test_u16: u16,
test_u32: u32,
test_u64: u64,
test_u128: u128,
test_i8: i8,
test_i16: i16,
test_i32: i32,
test_i64: i64,
test_i128: i128,
test_bool: bool,
test_f32: f32,
test_f64: f64,
test_option: Option<u8>,
test_vec: Vec<u8>,
test_ref: Ref<ReferedData>,
test_vec_bool: Vec<bool>,
test_other_embedded: OtherEmbedded,
}
#[derive(PersistentEmbedded)]
pub struct OtherEmbedded {}
#[test]
fn test_embeddd_condition_filter_builder() {
let mut builder = FilterBuilder::<EmbeddedData>::new();
EqualAction::equal((EmbeddedData::field_test_string(), &mut builder), String::from("aaa"));
EqualAction::equal((EmbeddedData::field_test_string(), &mut builder), "aaa");
EqualAction::equal((EmbeddedData::field_test_u8(), &mut builder), 1u8);
EqualAction::equal((EmbeddedData::field_test_u16(), &mut builder), 1u16);
EqualAction::equal((EmbeddedData::field_test_u32(), &mut builder), 1u32);
EqualAction::equal((EmbeddedData::field_test_u64(), &mut builder), 1u64);
EqualAction::equal((EmbeddedData::field_test_u128(), &mut builder), 1u128);
EqualAction::equal((EmbeddedData::field_test_i8(), &mut builder), 1i8);
EqualAction::equal((EmbeddedData::field_test_i16(), &mut builder), 1i16);
EqualAction::equal((EmbeddedData::field_test_i32(), &mut builder), 1i32);
EqualAction::equal((EmbeddedData::field_test_i64(), &mut builder), 1i64);
EqualAction::equal((EmbeddedData::field_test_i128(), &mut builder), 1i128);
EqualAction::equal((EmbeddedData::field_test_f32(), &mut builder), 1f32);
EqualAction::equal((EmbeddedData::field_test_f64(), &mut builder), 1f64);
EqualAction::equal((EmbeddedData::field_test_bool(), &mut builder), true);
EqualAction::equal((EmbeddedData::field_test_vec(), &mut builder), Vec::<u8>::new());
EqualAction::equal((EmbeddedData::field_test_vec(), &mut builder), 1u8);
EqualAction::equal((EmbeddedData::field_test_option(), &mut builder), Some(1u8));
EqualAction::equal((EmbeddedData::field_test_option(), &mut builder), 1u8);
EqualAction::equal(
(EmbeddedData::field_test_ref(), &mut builder),
"ReferedData@s0c5a58".parse::<Ref<ReferedData>>().unwrap(),
);
EqualAction::equal((EmbeddedData::field_test_vec_bool(), &mut builder), Vec::<bool>::new());
EqualAction::equal((EmbeddedData::field_test_vec_bool(), &mut builder), true);
RangeAction::range(
(EmbeddedData::field_test_string(), &mut builder),
String::from("aaa")..String::from("b"),
);
RangeAction::range((EmbeddedData::field_test_string(), &mut builder), "aaa".."b");
RangeAction::range((EmbeddedData::field_test_u8(), &mut builder), 1u8..2u8);
RangeAction::range((EmbeddedData::field_test_u16(), &mut builder), 1u16..2u16);
RangeAction::range((EmbeddedData::field_test_u32(), &mut builder), 1u32..2u32);
RangeAction::range((EmbeddedData::field_test_u64(), &mut builder), 1u64..2u64);
RangeAction::range((EmbeddedData::field_test_u128(), &mut builder), 1u128..2u128);
RangeAction::range((EmbeddedData::field_test_i8(), &mut builder), 1i8..2i8);
RangeAction::range((EmbeddedData::field_test_i16(), &mut builder), 1i16..2i16);
RangeAction::range((EmbeddedData::field_test_i32(), &mut builder), 1i32..2i32);
RangeAction::range((EmbeddedData::field_test_i64(), &mut builder), 1i64..2i64);
RangeAction::range((EmbeddedData::field_test_i128(), &mut builder), 1i128..2i128);
RangeAction::range((EmbeddedData::field_test_f32(), &mut builder), 1f32..2f32);
RangeAction::range((EmbeddedData::field_test_f64(), &mut builder), 1f64..2f64);
RangeAction::range(
(EmbeddedData::field_test_vec(), &mut builder),
Vec::<u8>::new()..Vec::<u8>::new(),
);
RangeAction::range((EmbeddedData::field_test_vec(), &mut builder), 1u8..2u8);
RangeAction::range((EmbeddedData::field_test_option(), &mut builder), Some(1u8)..Some(2u8));
RangeAction::range((EmbeddedData::field_test_option(), &mut builder), 1u8..2u8);
let first = "ReferedData@s0c5a58".parse::<Ref<ReferedData>>().unwrap();
let second = "ReferedData@s0c5a58".parse::<Ref<ReferedData>>().unwrap();
RangeAction::range((EmbeddedData::field_test_ref(), &mut builder), first..second);
QueryAction::query(
(EmbeddedData::field_test_other_embedded(), &mut builder),
Filter::<OtherEmbedded>::new(),
);
}