Public declaration syntax from forge-rs/crates/forge-core/src/schema.rs Original source SHA-256: ba11fc47be6db2f1ad0c9fe9ff828e076e54a411cfc093238e0a9b72174e4b57 Function bodies and constant values are omitted. This is not the complete implementation. Source line 37 #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct JsonSchema { /// The schema type. #[serde(rename = "type")] pub schema_type: SchemaType, /// Human-readable description of this schema element. #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, /// Properties (for object type). #[serde(skip_serializing_if = "Option::is_none")] pub properties: Option>, /// Required property names (for object type). #[serde(skip_serializing_if = "Option::is_none")] #[serde(rename = "required")] pub required_fields: Option>, /// Whether additional properties are allowed (for object type). #[serde(skip_serializing_if = "Option::is_none")] #[serde(rename = "additionalProperties")] pub additional_properties: Option, /// Items schema (for array type). #[serde(skip_serializing_if = "Option::is_none")] pub items: Option>, /// Allowed string values. #[serde(skip_serializing_if = "Option::is_none")] #[serde(rename = "enum")] pub enum_values: Option>, /// Minimum numeric value. #[serde(skip_serializing_if = "Option::is_none")] pub minimum: Option, /// Maximum numeric value. #[serde(skip_serializing_if = "Option::is_none")] pub maximum: Option, /// Minimum string length. #[serde(skip_serializing_if = "Option::is_none")] #[serde(rename = "minLength")] pub min_length: Option, /// Maximum string length. #[serde(skip_serializing_if = "Option::is_none")] #[serde(rename = "maxLength")] pub max_length: Option } Source line 91 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] pub enum SchemaType { /// A JSON string. String, /// A JSON number (floating point). Number, /// A JSON integer. Integer, /// A JSON boolean. Boolean, /// A JSON array. Array, /// A JSON object. Object, /// A JSON null. Null, } Source line 110 pub fn string() -> Self; Source line 115 pub fn number() -> Self; Source line 120 pub fn integer() -> Self; Source line 125 pub fn boolean() -> Self; Source line 130 pub fn array() -> Self; Source line 135 pub fn object() -> Self; Source line 140 pub fn null() -> Self; Source line 161 pub fn description(mut self, desc: impl Into) -> Self; Source line 167 pub fn property(mut self, name: impl Into, schema: JsonSchema) -> Self; Source line 175 pub fn required(mut self, name: impl Into) -> Self; Source line 183 pub fn items_schema(mut self, schema: JsonSchema) -> Self; Source line 189 pub fn enum_values(mut self, values: Vec) -> Self; Source line 195 pub fn minimum(mut self, min: impl Into) -> Self; Source line 201 pub fn maximum(mut self, max: impl Into) -> Self; Source line 207 pub fn min_length(mut self, len: u64) -> Self; Source line 213 pub fn max_length(mut self, len: u64) -> Self; Source line 219 pub fn additional_properties(mut self, allowed: bool) -> Self; Source line 243 pub fn validate(&self, value: &serde_json::Value) -> ForgeResult<()>;