cdx-core 0.7.1

Core library for reading, writing, and validating Codex Document Format (.cdx) files
Documentation
use crate::extensions::academic::NumberingConfig;
use crate::extensions::{Bibliography, CommentThread, FormData, JsonLdMetadata, PhantomClusters};
use crate::Result;

use super::define_extension_accessors;
use super::Document;
use super::MutableResource;

// ===== Extension Accessor Methods =====
//
// Generated by `define_extension_accessors!` macro. Each invocation produces:
//   - `$field(&self) -> Option<&$type>`
//   - `${field}_mut(&mut self) -> Result<Option<&mut $type>>`
//   - `has_${field}(&self) -> bool`
//   - `set_${field}(&mut self, value: $type) -> Result<()>`
//   - `clear_${field}(&mut self) -> Result<()>`

impl Document {
    define_extension_accessors!(
        academic_numbering,
        academic_numbering_mut,
        has_academic_numbering,
        set_academic_numbering,
        clear_academic_numbering,
        NumberingConfig,
        "academic numbering"
    );
    define_extension_accessors!(
        comments,
        comments_mut,
        has_comments,
        set_comments,
        clear_comments,
        CommentThread,
        "comments"
    );
    define_extension_accessors!(
        phantom_clusters,
        phantom_clusters_mut,
        has_phantom_clusters,
        set_phantom_clusters,
        clear_phantom_clusters,
        PhantomClusters,
        "phantom clusters"
    );
    define_extension_accessors!(
        form_data,
        form_data_mut,
        has_form_data,
        set_form_data,
        clear_form_data,
        FormData,
        "form data"
    );
    define_extension_accessors!(
        bibliography,
        bibliography_mut,
        has_bibliography,
        set_bibliography,
        clear_bibliography,
        Bibliography,
        "bibliography"
    );
    define_extension_accessors!(
        jsonld_metadata,
        jsonld_metadata_mut,
        has_jsonld_metadata,
        set_jsonld_metadata,
        clear_jsonld_metadata,
        JsonLdMetadata,
        "JSON-LD metadata"
    );
}