pub trait Schematic {
// Provided methods
fn schema_name() -> Option<String> { ... }
fn build_schema(schema: SchemaBuilder) -> Schema { ... }
}Expand description
Defines a schema that represents the shape of the implementing type.
Provided Methods§
Sourcefn schema_name() -> Option<String>
fn schema_name() -> Option<String>
Define a name for this schema type. Names are required for non-primitive values as a means to link references, and avoid cycles.
Sourcefn build_schema(schema: SchemaBuilder) -> Schema
fn build_schema(schema: SchemaBuilder) -> Schema
Create and return a schema that models the structure of the implementing type. The schema can be used to generate code, documentation, or other artifacts.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl Schematic for &Path
impl Schematic for &Path
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for &RelativePath
impl Schematic for &RelativePath
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for &str
impl Schematic for &str
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for ()
impl Schematic for ()
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Days
impl Schematic for Days
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Decimal
impl Schematic for Decimal
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Duration
impl Schematic for Duration
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for IpAddr
impl Schematic for IpAddr
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Ipv4Addr
impl Schematic for Ipv4Addr
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Ipv6Addr
impl Schematic for Ipv6Addr
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for IsoWeek
impl Schematic for IsoWeek
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Mapping
impl Schematic for Mapping
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Months
impl Schematic for Months
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NaiveDate
impl Schematic for NaiveDate
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NaiveDateTime
impl Schematic for NaiveDateTime
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NaiveTime
impl Schematic for NaiveTime
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NaiveWeek
impl Schematic for NaiveWeek
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<i8>
impl Schematic for NonZero<i8>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<i16>
impl Schematic for NonZero<i16>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<i32>
impl Schematic for NonZero<i32>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<i64>
impl Schematic for NonZero<i64>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<i128>
impl Schematic for NonZero<i128>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<isize>
impl Schematic for NonZero<isize>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<u8>
impl Schematic for NonZero<u8>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<u16>
impl Schematic for NonZero<u16>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<u32>
impl Schematic for NonZero<u32>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<u64>
impl Schematic for NonZero<u64>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<u128>
impl Schematic for NonZero<u128>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for NonZero<usize>
impl Schematic for NonZero<usize>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Number
impl Schematic for Number
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Number
impl Schematic for Number
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Path
impl Schematic for Path
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for PathBuf
impl Schematic for PathBuf
fn build_schema(schema: SchemaBuilder) -> Schema
impl Schematic for PklValue
Source§impl Schematic for Regex
impl Schematic for Regex
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for RelativePath
impl Schematic for RelativePath
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for RelativePathBuf
impl Schematic for RelativePathBuf
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for SocketAddr
impl Schematic for SocketAddr
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for SocketAddrV4
impl Schematic for SocketAddrV4
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for SocketAddrV6
impl Schematic for SocketAddrV6
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for String
impl Schematic for String
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for SystemTime
impl Schematic for SystemTime
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for TimeDelta
impl Schematic for TimeDelta
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Url
impl Schematic for Url
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for Uuid
impl Schematic for Uuid
fn build_schema(schema: SchemaBuilder) -> Schema
impl Schematic for Value
impl Schematic for Value
impl Schematic for Value
impl Schematic for Value
Source§impl Schematic for Version
impl Schematic for Version
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for VersionReq
impl Schematic for VersionReq
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for bool
impl Schematic for bool
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for char
impl Schematic for char
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for f32
impl Schematic for f32
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for f64
impl Schematic for f64
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for i8
impl Schematic for i8
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for i16
impl Schematic for i16
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for i32
impl Schematic for i32
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for i64
impl Schematic for i64
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for i128
impl Schematic for i128
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for isize
impl Schematic for isize
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for str
impl Schematic for str
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for u8
impl Schematic for u8
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for u16
impl Schematic for u16
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for u32
impl Schematic for u32
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for u64
impl Schematic for u64
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for u128
impl Schematic for u128
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl Schematic for usize
impl Schematic for usize
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<K, V, S> Schematic for HashMap<K, V, S>
impl<K, V, S> Schematic for HashMap<K, V, S>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<K, V> Schematic for BTreeMap<K, V>
impl<K, V> Schematic for BTreeMap<K, V>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<K, V> Schematic for Map<K, V>
impl<K, V> Schematic for Map<K, V>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<K, V> Schematic for Map<K, V>
impl<K, V> Schematic for Map<K, V>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<T0, T1, T2, T3, T4, T5, T6, T7> Schematic for (T0, T1, T2, T3, T4, T5, T6, T7)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5, T6> Schematic for (T0, T1, T2, T3, T4, T5, T6)
impl<T0, T1, T2, T3, T4, T5, T6> Schematic for (T0, T1, T2, T3, T4, T5, T6)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4, T5> Schematic for (T0, T1, T2, T3, T4, T5)
impl<T0, T1, T2, T3, T4, T5> Schematic for (T0, T1, T2, T3, T4, T5)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3, T4> Schematic for (T0, T1, T2, T3, T4)
impl<T0, T1, T2, T3, T4> Schematic for (T0, T1, T2, T3, T4)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2, T3> Schematic for (T0, T1, T2, T3)
impl<T0, T1, T2, T3> Schematic for (T0, T1, T2, T3)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1, T2> Schematic for (T0, T1, T2)
impl<T0, T1, T2> Schematic for (T0, T1, T2)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0, T1> Schematic for (T0, T1)
impl<T0, T1> Schematic for (T0, T1)
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T0> Schematic for (T0,)where
T0: Schematic,
impl<T0> Schematic for (T0,)where
T0: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T, S> Schematic for HashSet<T, S>where
T: Schematic,
impl<T, S> Schematic for HashSet<T, S>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T, S> Schematic for IndexSet<T, S>where
T: Schematic,
impl<T, S> Schematic for IndexSet<T, S>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T, const N: usize> Schematic for [T; N]where
T: Schematic,
impl<T, const N: usize> Schematic for [T; N]where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for &Twhere
T: Schematic,
impl<T> Schematic for &Twhere
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for &[T]where
T: Schematic,
impl<T> Schematic for &[T]where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for &mut Twhere
T: Schematic,
impl<T> Schematic for &mut Twhere
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for Arc<T>
impl<T> Schematic for Arc<T>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for BTreeSet<T>where
T: Schematic,
impl<T> Schematic for BTreeSet<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for BinaryHeap<T>where
T: Schematic,
impl<T> Schematic for BinaryHeap<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for Box<T>
impl<T> Schematic for Box<T>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for Cow<'_, T>
impl<T> Schematic for Cow<'_, T>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for LinkedList<T>where
T: Schematic,
impl<T> Schematic for LinkedList<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for Option<T>where
T: Schematic,
impl<T> Schematic for Option<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for Range<T>where
T: Schematic,
impl<T> Schematic for Range<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for RangeInclusive<T>where
T: Schematic,
impl<T> Schematic for RangeInclusive<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for Rc<T>
impl<T> Schematic for Rc<T>
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for Vec<T>where
T: Schematic,
impl<T> Schematic for Vec<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for VecDeque<T>where
T: Schematic,
impl<T> Schematic for VecDeque<T>where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<T> Schematic for [T]where
T: Schematic,
impl<T> Schematic for [T]where
T: Schematic,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<Tz> Schematic for Date<Tz>where
Tz: TimeZone,
impl<Tz> Schematic for Date<Tz>where
Tz: TimeZone,
fn build_schema(schema: SchemaBuilder) -> Schema
Source§impl<Tz> Schematic for DateTime<Tz>where
Tz: TimeZone,
impl<Tz> Schematic for DateTime<Tz>where
Tz: TimeZone,
fn build_schema(schema: SchemaBuilder) -> Schema
Implementors§
impl Schematic for ExtendsFrom
impl Schematic for RegexSetting
Available on crate feature
schema only.impl Schematic for Schema
impl Schematic for SchemaField
impl Schematic for SchemaType
impl Schematic for VersionSetting
Available on crate feature
schema only.