plotnik_lib/ir/
mod.rs

1//! Intermediate Representation (IR) for compiled queries.
2//!
3//! This module contains the in-memory representation of compiled queries
4//! as defined in ADR-0004 through ADR-0008. The IR is designed for:
5//! - Cache-efficient execution (64-byte aligned transitions)
6//! - Zero-copy access patterns
7//! - WASM compatibility
8//!
9//! Note: This module contains only type definitions. Query execution
10//! lives elsewhere.
11
12mod compiled;
13mod effect;
14mod emit;
15mod entrypoint;
16mod ids;
17mod matcher;
18mod nav;
19mod ref_transition;
20mod serialize;
21mod slice;
22mod string_ref;
23mod strings;
24mod transition;
25mod type_metadata;
26
27#[cfg(test)]
28mod effect_tests;
29#[cfg(test)]
30mod matcher_tests;
31#[cfg(test)]
32mod ref_transition_tests;
33#[cfg(test)]
34mod slice_tests;
35#[cfg(test)]
36mod string_ref_tests;
37
38// Re-export ID types
39pub use ids::{
40    DataFieldId, NodeFieldId, NodeTypeId, RefId, STRING_NONE, StringId, TransitionId, TypeId,
41    VariantTagId,
42};
43
44// Re-export TypeId constants
45pub use ids::{TYPE_INVALID, TYPE_NODE, TYPE_STR, TYPE_VOID};
46
47// Re-export Slice
48pub use slice::Slice;
49
50// Re-export navigation
51pub use nav::{Nav, NavKind};
52
53// Re-export matcher
54pub use matcher::{Matcher, MatcherKind};
55
56// Re-export effects
57pub use effect::EffectOp;
58
59// Re-export ref transition
60pub use ref_transition::RefTransition;
61
62// Re-export transition
63pub use transition::{MAX_INLINE_SUCCESSORS, Transition};
64
65// Re-export type metadata
66pub use type_metadata::{TYPE_COMPOSITE_START, TypeDef, TypeKind, TypeMember};
67
68// Re-export string ref
69pub use string_ref::StringRef;
70
71// Re-export entrypoint
72pub use entrypoint::Entrypoint;
73
74// Re-export compiled query types
75pub use compiled::{
76    BUFFER_ALIGN, CompiledQuery, CompiledQueryBuffer, CompiledQueryOffsets, FORMAT_VERSION, MAGIC,
77    MatcherView, TransitionView, align_up,
78};
79
80// Re-export string interner
81pub use strings::StringInterner;
82
83// Re-export emitter
84pub use emit::{EmitError, EmitResult, MapResolver, NodeKindResolver, NullResolver, QueryEmitter};
85
86// Re-export serialization
87pub use serialize::{
88    HEADER_SIZE, SerializeError, SerializeResult, deserialize, from_bytes, serialize, to_bytes,
89};