Skip to content

Quick Reference

ConceptSyntax
Immutable bindinglet x = 42
Mutable bindingvar x = 42
Type annotationlet x: i32 = 42
Functionfn name(a: i32): i32 { ... }
Generic functionfn name<T>(x: T): T { ... }
Structstruct Name { field: Type }
Enumenum Name { Variant(Type), Empty }
Matchmatch val { Variant(x) => { ... } }
If letif let Variant(x) = val { ... }
Option shorthandT? for Option<T>
Unwrapexpr!
Propagateexpr?
Defaultexpr ?? default
Array[1, 2, 3] or [0; 100]
Vecvar v: Vec<i32> = Vec.new()
HashMapvar m: HashMap<K, V> = HashMap.new()
HeapHeap(value), deref with *heaped
Reference paramfn f(x: &T) or fn f(x: &mut T)
Closure(x: i32) => x * 2
Importfrom "path" import { A, B }
FFIextern fn name(args): ret
Traittrait Name { fn method(self: &Self): T }
Impl traitimpl Trait for Type { ... }
Impl methodsimpl Type { ... }
Derive@derive(Eq)
Generic bound<T: Eq + Hash>
Castexpr as Type
Embed fileembedFile("path")
JSON serializejsonStringify(struct_val)
String slices[start..end]
Number to stringn.toString()
Bitwise& | ^ << >> ~
Hex / binary literal0xFF, 0b1010