Skip to content

Gossamer language reference

One page per language feature. Source is crates/gossamer-std/src/manifest/feature_status.rs; this index is regenerated from manifest::FEATURE_STATUS by gos doc --emit-stdlib.

Feature Status Summary
lang::let shipped Immutable binding.
lang::let_mut shipped Mutable binding.
lang::if shipped Conditional expression.
lang::match shipped Exhaustive pattern match expression.
lang::if_let shipped Single-variant pattern sugar.
lang::while_let shipped Loop that drains while a pattern matches.
lang::for shipped Iterator-driven loop.
lang::loop shipped Unconditional loop with break value.
lang::break shipped Exit the innermost loop, optionally with a value.
lang::continue shipped Skip to the next iteration of the innermost loop.
lang::return shipped Exit the enclosing function with a value.
lang::question_mark shipped Short-circuit Result / Option propagation operator.
lang::pipe shipped Forward-pipe operator \|>.
lang::closure shipped Lambda expression \|args\| body.
lang::fn shipped Function declaration.
lang::struct shipped Product type declaration.
lang::enum shipped Sum type declaration with payload-carrying variants.
lang::trait shipped Behaviour interface declaration.
lang::impl shipped Inherent and trait implementation blocks.
lang::generics shipped Type parameters on functions / impls / structs.
lang::go shipped Goroutine spawn.
lang::select shipped Channel multiplex select expression.
lang::channel shipped Typed channel via std::sync::channel.
lang::spawn shipped Goroutine join handle: spawn(f) -> JoinHandle<T>, .join() -> Result<T, String>.
lang::macros shipped Six built-in format macros (print/println/eprint/eprintln/format/panic).
lang::doctest shipped Fenced code in // doc comments runs under gos test.
lang::cfg shipped Conditional compilation attribute.
lang::attribute shipped Built-in attributes (#[cfg], #[test], #[bench], #[derive]).
lang::const shipped Compile-time constant binding.
lang::static shipped Module-level mutable or immutable static slot.
lang::mut_ref_params shipped &mut Vec<T> / &mut [T] parameters write through to the caller's storage on every tier.
lang::unicode_identifiers shipped Identifiers follow UAX #31 (matches Rust 2024).
lang::move_keyword planned move closure capture keyword - parses, lowers to the same Fn shape as a non-move closure (the runtime manages ownership).
lang::async_await planned async fn / .await - goroutines + channels cover the same shape today.
lang::lifetimes planned Explicit lifetime annotations - not needed under the current memory model; tracked in case a borrow-checker mode lands.