Skip to main content

appcore_filemaker/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/08/30 05:00:00 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/08/30 05:00:00 by dnettoRaw
8//      ###########      S: 1.0.2-rc
9// =============================================================================
10
11//! Deterministic declarative document, canvas, and dataset compiler.
12
13/// Explicit sandboxed asset and template resolvers.
14pub mod asset;
15mod binding_style;
16/// Bounded compile-once/render-many caches.
17pub mod cache;
18/// Geometry-first collision policies and deterministic spatial index.
19pub mod collision;
20/// Parse, include expansion, component expansion, and binding pipeline.
21pub mod compiler;
22mod compiler_bind;
23mod compiler_style;
24/// Minimum, preferred, maximum, aspect, and alignment contracts.
25pub mod constraints;
26/// Cooperative cancellation and progress contracts.
27pub mod control;
28/// Typed deterministic data values and schemas.
29pub mod data;
30/// Read-only debug overlays and geometry-derived collision masks.
31pub mod debug;
32/// JSON/vector/raster export for geometry-derived debug masks.
33pub mod debug_export;
34mod debug_geometry;
35mod debug_plan;
36#[cfg(test)]
37mod debug_tests;
38mod diagnostic_budget;
39/// Typed errors and stable FM codes.
40pub mod error;
41/// Capability-declared exporters selected only at call time.
42pub mod export;
43/// Bounded deterministic expression evaluation.
44pub mod expression;
45/// Deterministic input fingerprints.
46pub mod fingerprint;
47/// Explicit deterministic font registry.
48pub mod font;
49/// Fixed-point geometry contracts.
50pub mod geometry;
51/// Image crop, fit, focal point, EXIF, and resolved paint geometry.
52pub mod image;
53/// Read-only scene inspection and free-region queries.
54pub mod inspect;
55/// Format-neutral intermediate representations.
56pub mod ir;
57/// Measurement, layout, pagination, and bounded reflow engine.
58pub mod layout;
59mod layout_collision;
60mod layout_context;
61mod layout_exclusion;
62mod layout_flow;
63mod layout_geometry;
64mod layout_measure;
65mod layout_page;
66mod layout_policy;
67mod layout_region;
68mod layout_table;
69mod layout_table_stream;
70#[cfg(test)]
71mod layout_table_tests;
72/// Resource budgets.
73pub mod limits;
74mod memory;
75/// Page roles, masters, margins, bleed, safe areas, and numbering.
76pub mod page;
77/// Runtime mutation and transactional patch application.
78pub mod patch;
79mod patch_log;
80/// Versioned page and canvas presets.
81pub mod preset;
82/// Fully resolved exporter-facing scene.
83pub mod resolved;
84mod resolved_table;
85/// Strict version-one YAML frontend types.
86pub mod source;
87mod source_build;
88mod source_element;
89mod source_layout;
90mod source_page;
91mod source_page_build;
92mod source_style;
93mod source_table;
94mod source_text;
95mod source_transform;
96/// Colors, themes, and style cascade contracts.
97pub mod style;
98/// First-class bounded and streaming datasets/tables.
99pub mod table;
100mod table_columns;
101/// Unicode, `BiDi`, shaping, line breaking, and measurement.
102pub mod text;
103#[cfg(test)]
104mod text_break_tests;
105mod transform_math;
106/// Fixed-point units and source lengths.
107pub mod units;
108/// Schema, binding, layout, and exporter-aware preflight.
109pub mod validation;
110mod validation_capability;
111mod validation_data;
112mod validation_layout;
113mod validation_page;
114mod validation_table;
115
116pub use asset::{Asset, AssetResolver, FileResolver, MemoryResolver, TemplateResolver};
117pub use cache::SceneCache;
118pub use collision::{
119    CollisionBounds, CollisionPolicy, CollisionResolution, CollisionRule, LinearSpatialIndex,
120    SpatialIndex,
121};
122pub use compiler::{Compiler, CompilerBuilder};
123pub use constraints::{Alignment, Distribution, LayoutConstraints};
124pub use control::{
125    CancellationToken, OperationControl, ProgressEvent, ProgressObserver, ProgressPhase,
126};
127pub use data::{
128    resolve_computed_fields, CurrencyValue, DataField, DataSchema, DataType, DataValue,
129};
130pub use debug::{CollisionMask, DebugOverlay, DebugOverlayOptions, DebugPrimitive, MaskView};
131pub use debug_export::{export_collision_mask, MaskFormat};
132pub use error::{ErrorCode, FileMakerError, Result};
133pub use export::{
134    export, export_bytes, export_controlled, export_dataset_csv, export_dataset_csv_bytes,
135    ExportCapabilities, ExportContext, ExportFormat, ExportLoss, ExportLossKind, ExportLossReport,
136    ExportOutcome, ExportRequest, ExportStyleOverride, Fidelity, HtmlMode, PdfMode,
137};
138pub use expression::{Expression, ExpressionBudget};
139pub use fingerprint::{DocumentFingerprint, FingerprintBuilder};
140pub use font::{FontAsset, FontManager, FontResolver, FontSubset};
141pub use geometry::{BoundsSet, Insets, PathCommand, Point, Rect, Shape, Size, Transform};
142pub use image::{
143    resolve_image_placement, ImageCrop, ImageFit, ImageOptions, ImageOrientation, ImagePlacement,
144    PixelRect,
145};
146pub use inspect::{ElementInspection, LayoutExplanation, PageInspection, SceneInspector};
147pub use ir::{
148    AiPolicy, DocumentIr, ElementId, ElementIr, ElementKind, ExclusionIr, GeometryIr, LayoutMode,
149    PathCommandIr, Provenance, RegionIr, TableIr, TemplateIr, TextIr, TransformIr,
150};
151pub use layout::{LayoutEngine, LayoutOptions};
152pub use limits::ResourceLimits;
153pub use page::{PageBand, PagePlacement, PageRole, PageTemplate, PageTemplateSet};
154pub use patch::{Patch, PatchOperation, PatchTransaction};
155pub use patch_log::OperationLog;
156pub use preset::{Orientation, Preset, PresetRegistry};
157pub use resolved::{
158    LayoutTrace, ResolvedElement, ResolvedExclusion, ResolvedPage, ResolvedRegion, ResolvedScene,
159};
160pub use resolved_table::{ResolvedTableCell, ResolvedTableFragment, ResolvedTableRow};
161pub use source::{
162    ColorSource, EdgeSource, ElementSource, ElementStyleRuleSource, ExclusionSource, MirrorSource,
163    ModelKind, PageLayerSource, PageSource, TableSource, TableStyleRuleSource, TemplateSourceV1,
164    TextSourceOptions, TransformSource,
165};
166pub use style::{Color, ComputedStyle, ElementStyleRule, Style, StyleCascade};
167pub use table::{
168    BorrowedDataset, ColumnWidth, DataRow, Dataset, InMemoryDataset, StreamingDataset, TableColumn,
169    TablePage, TablePageSink, TablePaginator, TableSpec, TableStyleRule,
170};
171pub use table_columns::{resolve_table_columns, ResolvedTableColumn};
172pub use text::{
173    Glyph, GlyphRun, TextDiagnostic, TextEngine, TextLayout, TextLine, TextOptions, TextOverflow,
174    WritingMode,
175};
176pub use units::{Length, Unit};
177pub use validation::{
178    preflight, validate_data, validate_layout, validate_template, PreflightOptions, ValidationCode,
179    ValidationIssue, ValidationReport, ValidationSeverity,
180};
181
182/// Source schema accepted by this engine release.
183pub const FILEMAKER_SCHEMA_V1: &str = "1.0";
184
185/// Engine version included in deterministic fingerprints.
186pub const ENGINE_VERSION: &str = env!("CARGO_PKG_VERSION");