sea-orm/src/entity/model.rs
2021-05-27 03:45:47 +08:00

31 lines
728 B
Rust

use crate::{ColumnTrait, QueryResult, TypeErr};
pub use sea_query::Value;
use std::fmt::Debug;
pub trait ModelTrait: Clone + Debug {
type Column: ColumnTrait;
fn get(&self, c: Self::Column) -> Value;
fn set(&mut self, c: Self::Column, v: Value);
fn from_query_result(res: &QueryResult, pre: &str) -> Result<Self, TypeErr>
where
Self: Sized;
}
pub trait FromQueryResult {
fn from_query_result(res: &QueryResult, pre: &str) -> Result<Self, TypeErr>
where
Self: Sized;
}
impl<M> FromQueryResult for M
where
M: ModelTrait + Sized,
{
fn from_query_result(res: &QueryResult, pre: &str) -> Result<M, TypeErr> {
<Self as ModelTrait>::from_query_result(res, pre)
}
}