json_utils/schema_coercion/
coercion_error.rs1use 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}