oxipdf-ir 0.1.0

Intermediate representation types for the oxipdf PDF engine
Documentation
//! `oxipdf-ir` — Intermediate Representation types for the oxipdf PDF engine.
//!
//! This crate defines the `StyledTree` IR that serves as the input contract
//! for the oxipdf rendering pipeline. Consumers construct a `StyledTree`
//! from their domain AST and submit it to the engine for layout and emission.
//!
//! # IR Schema Versioning
//!
//! The IR schema is versioned via [`IrVersion`]. Compatibility rules:
//!
//! - **Same major version**: forward-compatible (older tree, newer engine = OK).
//! - **Different major version**: incompatible (engine rejects with error).
//!
//! See the [`version`] module for details.

pub mod chunking;
pub mod color;
pub mod config;
pub mod diagnostics;
pub mod error;
pub mod layout_result;
pub mod node;
pub mod page_template;
pub mod semantic;
pub mod style;
pub mod tree;
pub mod units;
pub mod version;

// Re-export primary types at crate root for convenience.
pub use color::Color;
pub use config::{
    HyphenationConfig, MissingGlyphPolicy, PageSectionConfig, RenderConfig, ResourceLimits,
};
pub use diagnostics::{NodePath, build_node_path};
pub use error::InputValidationError;
pub use layout_result::{CollapsedBorder, ComputedBox, ComputedLayout, TableLayoutData, TextLines};
pub use node::{
    BorderCollapse, ContentVariant, FormContent, FormField, ImageContent, ImageFormat, LinkContent,
    LinkTarget, MathContent, MathFormat, Node, NodeId, SvgContent, TableCell, TableColumn,
    TableColumnWidth, TableContent, TableLayoutMode, TableRow, TableRowGroup, TableRowGroupKind,
    TextContent,
};
pub use page_template::{
    FirstPageContent, HeaderFooterLayout, PageDecorations, PageMargins, PageTemplate,
};
pub use semantic::SemanticRole;
pub use style::ResolvedStyle;
pub use tree::{StyledTree, StyledTreeBuilder};
pub use units::{Dimension, LengthPercentage, Pt};
pub use version::{CURRENT_IR_VERSION, IrVersion};