pub enum StmtKind {
Show 31 variants
Let {
name: String,
mutable: bool,
type_ann: Option<TypeExpr>,
value: Expr,
is_public: bool,
},
FnDecl {
name: String,
type_params: Vec<String>,
params: Vec<Param>,
return_type: Option<TypeExpr>,
bounds: Vec<TraitBound>,
body: Vec<Stmt>,
is_generator: bool,
is_public: bool,
is_async: bool,
},
Expr(Expr),
Return(Option<Expr>),
If {
condition: Expr,
then_body: Vec<Stmt>,
else_ifs: Vec<(Expr, Vec<Stmt>)>,
else_body: Option<Vec<Stmt>>,
},
While {
condition: Expr,
body: Vec<Stmt>,
},
For {
name: String,
iter: Expr,
body: Vec<Stmt>,
},
ParallelFor {
name: String,
iter: Expr,
body: Vec<Stmt>,
},
Schema {
name: String,
fields: Vec<SchemaField>,
is_public: bool,
version: Option<i64>,
parent_version: Option<i64>,
},
Migrate {
schema_name: String,
from_version: i64,
to_version: i64,
operations: Vec<MigrateOp>,
},
Train {
name: String,
algorithm: String,
config: Vec<(String, Expr)>,
},
Pipeline {
name: String,
extract: Vec<Stmt>,
transform: Vec<Stmt>,
load: Vec<Stmt>,
schedule: Option<String>,
timeout: Option<String>,
retries: Option<i64>,
on_failure: Option<Vec<Stmt>>,
on_success: Option<Vec<Stmt>>,
},
StreamDecl {
name: String,
source: Expr,
transform: Vec<Stmt>,
sink: Option<Expr>,
window: Option<WindowSpec>,
watermark: Option<String>,
},
SourceDecl {
name: String,
connector_type: String,
config: Vec<(String, Expr)>,
},
SinkDecl {
name: String,
connector_type: String,
config: Vec<(String, Expr)>,
},
StructDecl {
name: String,
type_params: Vec<String>,
fields: Vec<SchemaField>,
is_public: bool,
},
EnumDecl {
name: String,
type_params: Vec<String>,
variants: Vec<EnumVariant>,
is_public: bool,
},
ImplBlock {
type_name: String,
type_params: Vec<String>,
methods: Vec<Stmt>,
},
TryCatch {
try_body: Vec<Stmt>,
catch_var: String,
catch_body: Vec<Stmt>,
finally_body: Option<Vec<Stmt>>,
},
Throw(Expr),
Import {
path: String,
alias: Option<String>,
},
Test {
name: String,
body: Vec<Stmt>,
},
Use {
item: UseItem,
is_public: bool,
},
ModDecl {
name: String,
is_public: bool,
},
TraitDef {
name: String,
type_params: Vec<String>,
methods: Vec<TraitMethod>,
is_public: bool,
},
TraitImpl {
trait_name: String,
type_name: String,
type_params: Vec<String>,
methods: Vec<Stmt>,
},
LetDestructure {
pattern: Pattern,
mutable: bool,
value: Expr,
is_public: bool,
},
TypeAlias {
name: String,
type_params: Vec<String>,
value: TypeExpr,
is_public: bool,
},
Agent {
name: String,
model: String,
system_prompt: Option<String>,
tools: Vec<(String, Expr)>,
max_turns: Option<i64>,
temperature: Option<f64>,
max_tokens: Option<i64>,
base_url: Option<String>,
api_key: Option<String>,
output_format: Option<String>,
on_tool_call: Option<Vec<Stmt>>,
on_complete: Option<Vec<Stmt>>,
},
Break,
Continue,
}Expand description
Statement variants
Variants§
Let
let x = expr or let mut x: type = expr
FnDecl
fn name<T, U>(params) -> return_type where T: Bound { body }
Fields
bounds: Vec<TraitBound>Expr(Expr)
Expression statement (e.g., a function call on its own line)
Return(Option<Expr>)
return expr
If
if cond { body } else if cond { body } else { body }
Fields
While
while cond { body }
For
for name in iter { body }
ParallelFor
parallel for name in iter { body }
Schema
schema Name { field: type, ... }
Fields
fields: Vec<SchemaField>Migrate
migrate SchemaName from V1 to V2 { add_column(...), ... }
Train
model name = train algorithm { key: value, ... }
Pipeline
pipeline name { extract { ... } transform { ... } load { ... } }
Fields
StreamDecl
stream name { source: expr, window: spec, transform: { ... }, sink: expr }
Fields
window: Option<WindowSpec>SourceDecl
source name = connector TYPE { key: value, ... }
SinkDecl
sink name = connector TYPE { key: value, ... }
StructDecl
struct Name<T, U> { field: type, ... }
EnumDecl
enum Name<T, E> { Variant, Variant(types), ... }
ImplBlock
impl<T> Type { fn methods... }
TryCatch
try { ... } catch e { ... } finally { ... }
Throw(Expr)
throw expr
Import
import "path.tl" or import "path.tl" as name
Test
test "name" { ... }
Use
use data.transforms.clean_users etc.
ModDecl
mod transforms or pub mod transforms
TraitDef
trait Display<T> { fn show(self) -> string }
TraitImpl
impl Display for Point { fn show(self) -> string { ... } }
LetDestructure
let { x, y } = expr or let [a, b] = expr
TypeAlias
type Mapper = fn(int64) -> int64
Agent
agent name { model: "...", system: "...", tools { ... }, max_turns: N, on_tool_call { ... }, on_complete { ... } }
Fields
Break
break
Continue
continue
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StmtKind
impl RefUnwindSafe for StmtKind
impl Send for StmtKind
impl Sync for StmtKind
impl Unpin for StmtKind
impl UnsafeUnpin for StmtKind
impl UnwindSafe for StmtKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);