Skip to main content

linkrs_query/executor/streaming/operators/
spec.rs

1//! OperatorSpec: Immutable configuration descriptors for operator nodes.
2//!
3//! Each variant holds only the immutable fields of a corresponding operator
4//! — expressions, configuration values, column names — but never cursors,
5//! hash tables, buffers, or lifecycle state.  This makes an `OperatorSpec`
6//! suitable for caching, EXPLAIN, and repeated instantiation without shared
7//! mutable state.
8//!
9//! This module is a thin compatibility shim: every spec lives in its own
10//! `spec/*` submodule mirroring one `OperatorKindSpec` domain, and this file
11//! only declares those submodules and re-exports their public items so that
12//! existing `operators::spec::SourceSpec` paths keep working.
13
14pub mod apply;
15pub mod blocking;
16pub mod cardinality;
17pub mod ddl;
18pub mod exchange;
19pub mod fulltext;
20pub mod graph;
21pub mod join;
22pub mod recursive;
23pub mod set;
24pub mod sink;
25pub mod source;
26pub mod txn;
27pub mod unary;
28pub mod vector;
29pub mod wco;
30
31pub use apply::{ApplyKind, ApplySpec};
32pub use blocking::BlockingSpec;
33pub use cardinality::operator_cardinality_shape_key;
34pub use ddl::{
35    DdlSpec, EdgeManageCommand, IndexManageCommand, MacroManageCommand, MigrateAction,
36    PropertyRename, SequenceManageCommand, SpaceManageCommand, TagManageCommand, TypeManageCommand,
37    UserManageCommand,
38};
39pub use exchange::ExchangeSpec;
40pub use fulltext::{FulltextManageCommand, FulltextSpec};
41pub use graph::GraphSpec;
42pub use join::{BuildSide, JoinSpec};
43pub use recursive::RecursiveFragmentSpec;
44pub use set::SetSpec;
45pub use sink::{CopyTarget, SinkSpec};
46pub use source::{BoundIndexPredicate, IndexProjection, SourceSpec};
47pub use txn::TxnSpec;
48pub use unary::UnarySpec;
49pub use vector::{SpecVectorFilter, VectorManageCommand, VectorSpec};
50pub use wco::WcoSpec;