pub trait ModelValidate: Sized {
// Required method
fn model_validate(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> ValidateResult<Self>;
// Provided methods
fn model_validate_json(json: &str) -> ValidateResult<Self> { ... }
fn model_validate_dict(dict: HashMap<String, Value>) -> ValidateResult<Self> { ... }
}Expand description
Trait for models that support model_validate().
This is typically implemented via derive macro or blanket impl for models that implement Deserialize.
Required Methods§
Sourcefn model_validate(
input: impl Into<ValidateInput>,
options: ValidateOptions,
) -> ValidateResult<Self>
fn model_validate( input: impl Into<ValidateInput>, options: ValidateOptions, ) -> ValidateResult<Self>
Create and validate a model from input.
§Arguments
input- The input to validate (Dict, Json, or JsonValue)options- Validation options
§Returns
The validated model or validation errors.
§Example
ⓘ
use sqlmodel_core::validate::{ModelValidate, ValidateInput, ValidateOptions};
let user = User::model_validate(
r#"{"name": "Alice", "age": 30}"#,
ValidateOptions::default()
)?;Provided Methods§
Sourcefn model_validate_json(json: &str) -> ValidateResult<Self>
fn model_validate_json(json: &str) -> ValidateResult<Self>
Create and validate a model from JSON string with default options.
Sourcefn model_validate_dict(dict: HashMap<String, Value>) -> ValidateResult<Self>
fn 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: DeserializeOwned> ModelValidate for T
Blanket implementation of ModelValidate for types that implement DeserializeOwned.
This provides model_validate() for any model that can be deserialized from JSON.