mod config;
mod formats;
mod ignore;
mod load;
mod query;
mod schema;
mod schema_yaml;
mod tree;
mod types;
pub(crate) mod validation;
pub use config::{CoercionError, QuillConfig};
pub use ignore::QuillIgnore;
pub use schema::build_transform_schema;
pub use tree::FileTreeNode;
pub use types::{
field_key, ui_key, CardSchema, FieldSchema, FieldType, UiContainerSchema, UiFieldSchema,
};
use std::collections::HashMap;
use crate::value::QuillValue;
#[derive(Clone)]
pub struct QuillSource {
pub metadata: HashMap<String, QuillValue>,
pub name: String,
pub backend_id: String,
pub plate: Option<String>,
pub example: Option<String>,
pub config: QuillConfig,
pub defaults: HashMap<String, QuillValue>,
pub examples: HashMap<String, Vec<QuillValue>>,
pub files: FileTreeNode,
}
impl std::fmt::Debug for QuillSource {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("QuillSource")
.field("name", &self.name)
.field("backend_id", &self.backend_id)
.field(
"plate",
&self.plate.as_ref().map(|s| format!("<{} bytes>", s.len())),
)
.field("example", &self.example.is_some())
.field("files", &"<FileTreeNode>")
.finish()
}
}
#[cfg(test)]
mod tests;