json_utils/schema_coercion/
coercion_error.rs

1use std::collections::HashSet;
2
3use crate::json::JsValue;
4use crate::schema::SchemaNode;
5
6use super::Coercion;
7
8#[derive(Debug, Fail)]
9pub enum CoercionError {
10    #[fail(
11        display = "CoercionError::IncompatibleSchemas: {:?} -> {:?}",
12        source, target
13    )]
14    IncompatibleSchemas {
15        source: SchemaNode,
16        target: SchemaNode,
17    },
18
19    #[fail(display = "CoercionError::UnexpectedInput: {:?} {:?}", input, coercion)]
20    UnexpectedInput { input: JsValue, coercion: Coercion },
21
22    #[fail(display = "CoercionError::ObjectFieldsMissing: {:?}", _0)]
23    ObjectFieldsMissing(HashSet<String>),
24
25    #[fail(display = "CoercionError::JsNumberError")]
26    JsNumberError,
27}