pub trait SqlModelValidate:
Model
+ DeserializeOwned
+ Sized {
// Provided methods
fn sql_model_validate(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> ValidateResult<Self> { ... }
fn sql_model_validate_json(json: &str) -> ValidateResult<Self> { ... }
fn sql_model_validate_dict(
dict: HashMap<String, Value>,
) -> ValidateResult<Self> { ... }
}Expand description
Model-aware validation that supports field aliases.
Unlike the generic ModelValidate, this trait uses the Model::fields()
metadata to transform aliased input keys to their actual field names
before deserialization.
§Example
ⓘ
#[derive(Model, Serialize, Deserialize)]
struct User {
#[sqlmodel(validation_alias = "userName")]
name: String,
}
// Input with alias key works
let user = User::sql_model_validate(r#"{"userName": "Alice"}"#)?;
assert_eq!(user.name, "Alice");Provided Methods§
Sourcefn sql_model_validate(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> ValidateResult<Self>
fn sql_model_validate( input: impl Into<ValidateInput>, options: ValidateOptions, ) -> ValidateResult<Self>
Create and validate a model from input, applying validation aliases.
Sourcefn sql_model_validate_json(json: &str) -> ValidateResult<Self>
fn sql_model_validate_json(json: &str) -> ValidateResult<Self>
Create and validate a model from JSON string with default options.
Sourcefn sql_model_validate_dict(dict: HashMap<String, Value>) -> ValidateResult<Self>
fn sql_model_validate_dict(dict: HashMap<String, Value>) -> ValidateResult<Self>
Create and validate a model from a HashMap with default options.
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.
Implementors§
impl<T: Model + DeserializeOwned> SqlModelValidate for T
Blanket implementation for all Model types that implement DeserializeOwned.