pub trait Model:
Serialize
+ for<'de> Deserialize<'de>
+ Send
+ Sync {
// Required method
fn meta() -> ModelMeta;
// Provided methods
fn collection_name() -> String { ... }
fn database_alias() -> Option<String> { ... }
fn validate(&self) -> QuickDbResult<()> { ... }
fn to_data_map_direct(&self) -> QuickDbResult<HashMap<String, DataValue>> { ... }
fn to_data_map_legacy(&self) -> QuickDbResult<HashMap<String, DataValue>> { ... }
fn to_data_map(&self) -> QuickDbResult<HashMap<String, DataValue>> { ... }
fn to_data_map_with_types(
&self,
) -> QuickDbResult<HashMap<String, DataValue>> { ... }
fn to_data_map_with_types_json(
&self,
) -> QuickDbResult<HashMap<String, JsonValue>> { ... }
fn from_data_map(data: HashMap<String, DataValue>) -> QuickDbResult<Self> { ... }
}Expand description
模型特征
所有模型都必须实现这个特征
Required Methods§
Provided Methods§
Sourcefn collection_name() -> String
fn collection_name() -> String
获取集合/表名
Sourcefn database_alias() -> Option<String>
fn database_alias() -> Option<String>
获取数据库别名
Sourcefn validate(&self) -> QuickDbResult<()>
fn validate(&self) -> QuickDbResult<()>
验证模型数据
Sourcefn to_data_map_direct(&self) -> QuickDbResult<HashMap<String, DataValue>>
fn to_data_map_direct(&self) -> QuickDbResult<HashMap<String, DataValue>>
转换为数据映射(直接转换,避免 JSON 序列化开销) 子类应该重写此方法以提供高性能的直接转换
Sourcefn to_data_map_legacy(&self) -> QuickDbResult<HashMap<String, DataValue>>
fn to_data_map_legacy(&self) -> QuickDbResult<HashMap<String, DataValue>>
转换为数据映射(传统 JSON 序列化方式) 保留此方法用于向后兼容和调试
Sourcefn to_data_map(&self) -> QuickDbResult<HashMap<String, DataValue>>
fn to_data_map(&self) -> QuickDbResult<HashMap<String, DataValue>>
将模型转换为数据映射(高性能版本)
Sourcefn to_data_map_with_types(&self) -> QuickDbResult<HashMap<String, DataValue>>
fn to_data_map_with_types(&self) -> QuickDbResult<HashMap<String, DataValue>>
将模型转换为带类型信息的数据映射(专门用于 PyO3 兼容序列化) 对于 None 值,会根据字段类型生成带类型标签的 DataValue
Sourcefn to_data_map_with_types_json(
&self,
) -> QuickDbResult<HashMap<String, JsonValue>>
fn to_data_map_with_types_json( &self, ) -> QuickDbResult<HashMap<String, JsonValue>>
将模型转换为带类型信息的 JSON 映射(专门用于 PyO3 兼容序列化) 对于 None 值,会根据字段类型生成带类型标签的 JsonValue 这个方法直接返回 JsonValue,避免 DataValue 的额外嵌套
Sourcefn from_data_map(data: HashMap<String, DataValue>) -> QuickDbResult<Self>
fn from_data_map(data: HashMap<String, DataValue>) -> QuickDbResult<Self>
从数据映射创建模型实例
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.