pub trait SqlModelValidate:
Model
+ DeserializeOwned
+ Sized {
// Provided methods
fn sql_model_validate(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> ValidateResult<Self> { ... }
fn sql_model_validate_tracked(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> ValidateResult<TrackedModel<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_tracked(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> ValidateResult<TrackedModel<Self>>
fn sql_model_validate_tracked( input: impl Into<ValidateInput>, options: ValidateOptions, ) -> ValidateResult<TrackedModel<Self>>
Create and validate a model from input, also tracking which fields were explicitly set.
This enables Pydantic-compatible exclude_unset behavior when dumping via TrackedModel.
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".
Implementors§
impl<T: Model + DeserializeOwned> SqlModelValidate for T
Blanket implementation for all Model types that implement DeserializeOwned.