1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
use crate::pool::C3p0Pool; use crate::types::OptString; #[derive(Clone)] pub struct C3p0JsonBuilder<C3P0: C3p0Pool> { phantom_c3p0_manager: std::marker::PhantomData<C3P0>, pub id_field_name: String, pub version_field_name: String, pub data_field_name: String, pub table_name: String, pub schema_name: Option<String>, } impl<C3P0: C3p0Pool> C3p0JsonBuilder<C3P0> { pub fn new<T: Into<String>>(table_name: T) -> Self { let table_name = table_name.into(); C3p0JsonBuilder { phantom_c3p0_manager: std::marker::PhantomData, table_name: table_name.clone(), id_field_name: "id".to_owned(), version_field_name: "version".to_owned(), data_field_name: "data".to_owned(), schema_name: None, } } pub fn with_id_field_name<T: Into<String>>(mut self, id_field_name: T) -> Self { self.id_field_name = id_field_name.into(); self } pub fn with_version_field_name<T: Into<String>>(mut self, version_field_name: T) -> Self { self.version_field_name = version_field_name.into(); self } pub fn with_data_field_name<T: Into<String>>(mut self, data_field_name: T) -> Self { self.data_field_name = data_field_name.into(); self } pub fn with_schema_name<O: Into<OptString>>(mut self, schema_name: O) -> Self { self.schema_name = schema_name.into().value; self } }