use rskit_errors::AppResult;
use serde_json::Value;
use crate::{Json, ValidationLimits, limits::check_json_limits};
#[derive(Debug, Clone, PartialEq)]
pub struct SchemaDocument {
value: Json,
}
impl SchemaDocument {
pub fn new(value: Json) -> AppResult<Self> {
Self::with_limits(value, ValidationLimits::default())
}
pub fn with_limits(value: Json, limits: ValidationLimits) -> AppResult<Self> {
check_json_limits("schema", &value, limits)?;
Ok(Self { value })
}
pub fn as_json(&self) -> &Value {
&self.value
}
#[must_use]
pub fn into_json(self) -> Json {
self.value
}
}