#![allow(dead_code)]
use crate::tokens::Trivia;
#[derive(Debug, Clone, Default)]
pub struct Loc {
pub line: u32,
pub column: u32,
}
#[derive(Debug, Clone, Default)]
pub struct DeclarationTrivia {
pub leading: Vec<Trivia>,
pub trailing: Vec<Trivia>,
}
#[derive(Debug)]
pub struct Program {
pub declarations: Vec<Declaration>,
pub declaration_trivia: Vec<DeclarationTrivia>,
pub loc: Loc,
}
#[derive(Debug)]
pub enum Declaration {
Import(ImportNode),
Persona(PersonaDefinition),
Context(ContextDefinition),
Anchor(AnchorConstraint),
Memory(MemoryDefinition),
Tool(ToolDefinition),
Type(TypeDefinition),
Flow(FlowDefinition),
Intent(IntentNode),
Run(RunStatement),
Epistemic(EpistemicBlock),
Let(LetStatement),
LambdaData(LambdaDataDefinition),
Agent(AgentDefinition),
Shield(ShieldDefinition),
Pix(PixDefinition),
Psyche(PsycheDefinition),
Corpus(CorpusDefinition),
Dataspace(DataspaceDefinition),
Ots(OtsDefinition),
Mandate(MandateDefinition),
Compute(ComputeDefinition),
Daemon(DaemonDefinition),
AxonStore(AxonStoreDefinition),
AxonEndpoint(AxonEndpointDefinition),
Resource(ResourceDefinition),
Fabric(FabricDefinition),
Manifest(ManifestDefinition),
Observe(ObserveDefinition),
Reconcile(ReconcileDefinition),
Lease(LeaseDefinition),
Ensemble(EnsembleDefinition),
Session(SessionDefinition),
Topology(TopologyDefinition),
Immune(ImmuneDefinition),
Reflex(ReflexDefinition),
Heal(HealDefinition),
Component(ComponentDefinition),
View(ViewDefinition),
Channel(ChannelDefinition),
Generic(GenericDeclaration),
}
#[derive(Debug, Default)]
pub struct ResourceDefinition {
pub name: String,
pub kind: String, pub endpoint: String, pub capacity: Option<i64>, pub lifetime: String, pub certainty_floor: Option<f64>, pub shield_ref: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct FabricDefinition {
pub name: String,
pub provider: String, pub region: String, pub zones: Option<i64>, pub ephemeral: Option<bool>, pub shield_ref: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct ManifestDefinition {
pub name: String,
pub resources: Vec<String>, pub fabric_ref: String, pub region: String,
pub zones: Option<i64>,
pub compliance: Vec<String>, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct ObserveDefinition {
pub name: String,
pub target: String, pub sources: Vec<String>,
pub quorum: Option<i64>, pub timeout: String, pub on_partition: String, pub certainty_floor: Option<f64>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct ReconcileDefinition {
pub name: String,
pub observe_ref: String,
pub threshold: Option<f64>, pub tolerance: Option<f64>, pub on_drift: String, pub shield_ref: String,
pub mandate_ref: String,
pub max_retries: i64, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct LeaseDefinition {
pub name: String,
pub resource_ref: String,
pub duration: String, pub acquire: String, pub on_expire: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct EnsembleDefinition {
pub name: String,
pub observations: Vec<String>,
pub quorum: Option<i64>,
pub aggregation: String, pub certainty_mode: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Clone, Default)]
pub struct SessionStep {
pub op: String, pub message_type: String, pub loc: Loc,
}
#[derive(Debug, Default)]
pub struct SessionRole {
pub name: String,
pub steps: Vec<SessionStep>,
pub loc: Loc,
}
#[derive(Debug, Default)]
pub struct SessionDefinition {
pub name: String,
pub roles: Vec<SessionRole>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct TopologyEdge {
pub source: String,
pub target: String,
pub session_ref: String,
pub loc: Loc,
}
#[derive(Debug, Default)]
pub struct TopologyDefinition {
pub name: String,
pub nodes: Vec<String>,
pub edges: Vec<TopologyEdge>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct ImmuneDefinition {
pub name: String,
pub watch: Vec<String>, pub sensitivity: Option<f64>, pub baseline: String, pub window: i64, pub scope: String, pub tau: String, pub decay: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct ReflexDefinition {
pub name: String,
pub trigger: String, pub on_level: String, pub action: String, pub scope: String, pub sla: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct HealDefinition {
pub name: String,
pub source: String, pub on_level: String, pub mode: String, pub scope: String, pub review_sla: String, pub shield_ref: String, pub max_patches: i64, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct ComponentDefinition {
pub name: String,
pub renders: String,
pub via_shield: String,
pub on_interact: String,
pub render_hint: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Default)]
pub struct ViewDefinition {
pub name: String,
pub title: String,
pub components: Vec<String>,
pub route: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct GenericDeclaration {
pub keyword: String,
pub name: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct AgentDefinition {
pub name: String,
pub goal: String,
pub tools: Vec<String>,
pub memory_ref: String,
pub strategy: String, pub on_stuck: String, pub shield_ref: String,
pub max_iterations: Option<i64>,
pub max_tokens: Option<i64>,
pub max_time: String,
pub max_cost: Option<f64>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct ShieldDefinition {
pub name: String,
pub scan: Vec<String>,
pub strategy: String, pub on_breach: String, pub severity: String, pub quarantine: String,
pub max_retries: Option<i64>,
pub confidence_threshold: Option<f64>,
pub allow_tools: Vec<String>,
pub deny_tools: Vec<String>,
pub sandbox: Option<bool>,
pub redact: Vec<String>,
pub log: String,
pub deflect_message: String,
pub taint: String,
pub compliance: Vec<String>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct PixDefinition {
pub name: String,
pub source: String,
pub depth: Option<i64>,
pub branching: Option<i64>,
pub model: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct PsycheDefinition {
pub name: String,
pub dimensions: Vec<String>,
pub manifold_noise: Option<f64>,
pub manifold_momentum: Option<f64>,
pub safety_constraints: Vec<String>,
pub quantum_enabled: Option<bool>,
pub inference_mode: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct CorpusDefinition {
pub name: String,
pub documents: Vec<String>, pub mcp_server: String,
pub mcp_resource_uri: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct DataspaceDefinition {
pub name: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct OtsDefinition {
pub name: String,
pub teleology: String,
pub homotopy_search: String, pub loss_function: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct MandateDefinition {
pub name: String,
pub constraint: String,
pub kp: Option<f64>,
pub ki: Option<f64>,
pub kd: Option<f64>,
pub tolerance: Option<f64>,
pub max_steps: Option<i64>,
pub on_violation: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct ComputeDefinition {
pub name: String,
pub shield_ref: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct DaemonDefinition {
pub name: String,
pub goal: String,
pub tools: Vec<String>,
pub memory_ref: String,
pub strategy: String, pub on_stuck: String, pub shield_ref: String,
pub max_tokens: Option<i64>,
pub max_time: String,
pub max_cost: Option<f64>,
pub listeners: Vec<ListenStep>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct AxonStoreDefinition {
pub name: String,
pub backend: String, pub connection: String,
pub confidence_floor: Option<f64>,
pub isolation: String, pub on_breach: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct AxonEndpointDefinition {
pub name: String,
pub method: String, pub path: String,
pub body_type: String,
pub execute_flow: String,
pub output_type: String,
pub shield_ref: String,
pub retries: Option<i64>,
pub timeout: String,
pub compliance: Vec<String>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct ImportNode {
pub module_path: Vec<String>,
pub names: Vec<String>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct PersonaDefinition {
pub name: String,
pub domain: Vec<String>,
pub tone: String,
pub confidence_threshold: Option<f64>,
pub cite_sources: Option<bool>,
pub refuse_if: Vec<String>,
pub language: String,
pub description: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct ContextDefinition {
pub name: String,
pub memory_scope: String,
pub language: String,
pub depth: String,
pub max_tokens: Option<i64>,
pub temperature: Option<f64>,
pub cite_sources: Option<bool>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct AnchorConstraint {
pub name: String,
pub require: String,
pub reject: Vec<String>,
pub enforce: String,
pub description: String,
pub confidence_floor: Option<f64>,
pub unknown_response: String,
pub on_violation: String,
pub on_violation_target: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct MemoryDefinition {
pub name: String,
pub store: String,
pub backend: String,
pub retrieval: String,
pub decay: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct ToolDefinition {
pub name: String,
pub provider: String,
pub max_results: Option<i64>,
pub filter_expr: String,
pub timeout: String,
pub runtime: String,
pub sandbox: Option<bool>,
pub effects: Option<EffectRow>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct EffectRow {
pub effects: Vec<String>,
pub epistemic_level: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct TypeDefinition {
pub name: String,
pub fields: Vec<TypeField>,
pub range_constraint: Option<RangeConstraint>,
pub where_clause: Option<WhereClause>,
pub compliance: Vec<String>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug, Clone)]
pub struct TypeExpr {
pub name: String,
pub generic_param: String,
pub optional: bool,
pub loc: Loc,
}
#[derive(Debug)]
pub struct TypeField {
pub name: String,
pub type_expr: TypeExpr,
pub loc: Loc,
}
#[derive(Debug)]
pub struct RangeConstraint {
pub min_value: f64,
pub max_value: f64,
pub loc: Loc,
}
#[derive(Debug)]
pub struct WhereClause {
pub expression: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct FlowDefinition {
pub name: String,
pub parameters: Vec<Parameter>,
pub return_type: Option<TypeExpr>,
pub body: Vec<FlowStep>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct Parameter {
pub name: String,
pub type_expr: TypeExpr,
pub loc: Loc,
}
#[derive(Debug)]
pub enum FlowStep {
Step(StepNode),
If(ConditionalNode),
ForIn(ForInStatement),
Let(LetStatement),
Return(ReturnStatement),
LambdaDataApply(LambdaDataApplyNode),
Probe(ProbeStep),
Reason(ReasonStep),
Validate(ValidateStep),
Refine(RefineStep),
Weave(WeaveStep),
UseTool(UseToolStep),
Remember(RememberStep),
Recall(RecallStep),
Par(ParBlock),
Hibernate(HibernateStep),
Deliberate(DeliberateBlock),
Consensus(ConsensusBlock),
Forge(ForgeBlock),
Focus(FocusStep),
Associate(AssociateStep),
Aggregate(AggregateStep),
ExploreStep(ExploreStepNode),
Ingest(IngestStep),
ShieldApply(ShieldApplyStep),
Stream(StreamBlock),
Navigate(NavigateStep),
Drill(DrillStep),
Trail(TrailStep),
Corroborate(CorroborateStep),
OtsApply(OtsApplyStep),
MandateApply(MandateApplyStep),
ComputeApply(ComputeApplyStep),
Listen(ListenStep),
DaemonStep(DaemonStepNode),
Emit(EmitStatement),
Publish(PublishStatement),
Discover(DiscoverStatement),
Persist(PersistStep),
Retrieve(RetrieveStep),
Mutate(MutateStep),
Purge(PurgeStep),
Transact(TransactBlock),
GenericStep(GenericFlowStep),
}
#[derive(Debug)]
pub struct GenericFlowStep {
pub keyword: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct StepNode {
pub name: String,
pub persona_ref: String,
pub given: String,
pub ask: String,
pub output_type: String,
pub confidence_floor: Option<f64>,
pub navigate_ref: String,
pub apply_ref: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct IntentNode {
pub name: String,
pub given: String,
pub ask: String,
pub output_type: Option<TypeExpr>,
pub confidence_floor: Option<f64>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct RunStatement {
pub flow_name: String,
pub arguments: Vec<String>,
pub persona: String,
pub context: String,
pub anchors: Vec<String>,
pub on_failure: String,
pub on_failure_params: Vec<(String, String)>,
pub output_to: String,
pub effort: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct EpistemicBlock {
pub mode: String,
pub body: Vec<Declaration>,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct ConditionalNode {
pub condition: String,
pub comparison_op: String,
pub comparison_value: String,
pub then_body: Vec<FlowStep>,
pub else_body: Vec<FlowStep>,
pub conditions: Vec<(String, String, String)>,
pub conjunctor: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct ForInStatement {
pub variable: String,
pub iterable: String,
pub body: Vec<FlowStep>,
pub loc: Loc,
}
#[derive(Debug)]
pub struct LetStatement {
pub identifier: String,
pub value_expr: String,
pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct ReturnStatement {
pub value_expr: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct LambdaDataDefinition {
pub name: String,
pub ontology: String, pub certainty: f64, pub temporal_frame_start: String, pub temporal_frame_end: String, pub provenance: String, pub derivation: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct LambdaDataApplyNode {
pub lambda_data_name: String, pub target: String, pub output_type: String, pub loc: Loc,
}
#[derive(Debug)]
pub struct ProbeStep { pub target: String, pub loc: Loc }
#[derive(Debug)]
pub struct ReasonStep { pub strategy: String, pub target: String, pub loc: Loc }
#[derive(Debug)]
pub struct ValidateStep { pub target: String, pub rule: String, pub loc: Loc }
#[derive(Debug)]
pub struct RefineStep { pub target: String, pub strategy: String, pub loc: Loc }
#[derive(Debug)]
pub struct WeaveStep {
pub sources: Vec<String>, pub target: String, pub format_type: String,
pub priority: Vec<String>, pub style: String, pub loc: Loc,
}
#[derive(Debug)]
pub struct UseToolStep { pub tool_name: String, pub argument: String, pub loc: Loc }
#[derive(Debug)]
pub struct RememberStep { pub expression: String, pub memory_target: String, pub loc: Loc }
#[derive(Debug)]
pub struct RecallStep { pub query: String, pub memory_source: String, pub loc: Loc }
#[derive(Debug)]
pub struct ParBlock { pub loc: Loc }
#[derive(Debug)]
pub struct HibernateStep { pub event_name: String, pub timeout: String, pub loc: Loc }
#[derive(Debug)]
pub struct DeliberateBlock { pub loc: Loc }
#[derive(Debug)]
pub struct ConsensusBlock { pub loc: Loc }
#[derive(Debug)]
pub struct ForgeBlock { pub loc: Loc }
#[derive(Debug)]
pub struct FocusStep { pub expression: String, pub loc: Loc }
#[derive(Debug)]
pub struct AssociateStep { pub left: String, pub right: String, pub using_field: String, pub loc: Loc }
#[derive(Debug)]
pub struct AggregateStep { pub target: String, pub group_by: Vec<String>, pub alias: String, pub loc: Loc }
#[derive(Debug)]
pub struct ExploreStepNode { pub target: String, pub limit: Option<i64>, pub loc: Loc }
#[derive(Debug)]
pub struct IngestStep { pub source: String, pub target: String, pub loc: Loc }
#[derive(Debug)]
pub struct ShieldApplyStep { pub shield_name: String, pub target: String, pub output_type: String, pub loc: Loc }
#[derive(Debug)]
pub struct StreamBlock { pub loc: Loc }
#[derive(Debug)]
pub struct NavigateStep {
pub pix_name: String, pub corpus_name: String, pub query_expr: String,
pub trail_enabled: bool, pub output_name: String, pub loc: Loc,
}
#[derive(Debug)]
pub struct DrillStep { pub pix_name: String, pub subtree_path: String, pub query_expr: String, pub output_name: String, pub loc: Loc }
#[derive(Debug)]
pub struct TrailStep { pub navigate_ref: String, pub loc: Loc }
#[derive(Debug)]
pub struct CorroborateStep { pub navigate_ref: String, pub output_name: String, pub loc: Loc }
#[derive(Debug)]
pub struct OtsApplyStep { pub ots_name: String, pub target: String, pub output_type: String, pub loc: Loc }
#[derive(Debug)]
pub struct MandateApplyStep { pub mandate_name: String, pub target: String, pub output_type: String, pub loc: Loc }
#[derive(Debug)]
pub struct ComputeApplyStep { pub compute_name: String, pub arguments: Vec<String>, pub output_name: String, pub loc: Loc }
#[derive(Debug)]
pub struct ListenStep {
pub channel: String,
pub channel_is_ref: bool,
pub event_alias: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct DaemonStepNode { pub daemon_ref: String, pub loc: Loc }
#[derive(Debug)]
pub struct PersistStep { pub store_name: String, pub loc: Loc }
#[derive(Debug)]
pub struct RetrieveStep { pub store_name: String, pub where_expr: String, pub alias: String, pub loc: Loc }
#[derive(Debug)]
pub struct MutateStep { pub store_name: String, pub where_expr: String, pub loc: Loc }
#[derive(Debug)]
pub struct PurgeStep { pub store_name: String, pub where_expr: String, pub loc: Loc }
#[derive(Debug)]
pub struct TransactBlock { pub loc: Loc }
#[derive(Debug)]
pub struct ChannelDefinition {
pub name: String,
pub message: String, pub qos: String, pub lifetime: String, pub persistence: String, pub shield_ref: String, pub loc: Loc,
pub leading_trivia: Vec<crate::tokens::Trivia>,
pub trailing_trivia: Vec<crate::tokens::Trivia>,
}
#[derive(Debug)]
pub struct EmitStatement {
pub channel_ref: String,
pub value_ref: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct PublishStatement {
pub channel_ref: String,
pub shield_ref: String,
pub loc: Loc,
}
#[derive(Debug)]
pub struct DiscoverStatement {
pub capability_ref: String,
pub alias: String,
pub loc: Loc,
}