katana-document-viewer 0.1.0

UI-independent document artifact, render evaluation, and export foundation for KatanA.
Documentation
use crate::document::{
    DocumentModelError, DocumentSnapshot, DocumentSnapshotFactory, DocumentSource, SourceKind,
    SourceRevision, SourceUri,
};
use katana_markdown_model::{KatanaMarkdownModel, MarkdownInput};

pub(crate) struct SampleSnapshotFactory;

impl SampleSnapshotFactory {
    pub(crate) fn create() -> Result<DocumentSnapshot, DocumentModelError> {
        let source = DocumentSource {
            uri: SourceUri("file:///sample.md".to_string()),
            kind: SourceKind::Markdown,
            revision: SourceRevision("rev-1".to_string()),
            content: "# Title\n\nBody".to_string(),
        };
        let document = KatanaMarkdownModel::parse(MarkdownInput::from_content(
            "sample.md",
            source.content.clone(),
        ))?;
        Ok(DocumentSnapshotFactory::from_kmm(source, document))
    }
}