linux:rust

Rust cheatlist

  • cargo new project_name: Initializes a new Rust project named project_name in the current directory.
  • cargo build: Build program without optimizations. Output is stored in ./target/debug.
  • cargo build –release: Build program with runtime optimizations. Output is stored in ./target/release.
  • Scalar types:
    • Integer: Internally represented in 2-components notation when signed (-(2n ) → 2n -1)
LengthSignedUnsigned
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
archisizeusize
  • Floating point: f32, f64
  • Boolean: bool
  • Character: char
  • Compound types
  • Tuple: Fixed size (defined at declaration), elements may differ in type
    • let tup: (i32, f64, u8) = (500, 6.4, 1);
    • Values can be retrieved by either pattern matching: let (x, y, z) = tup; // x, y and z are now accessible as variables or by using a period let x = tup.0;
    • Array: Fixed size, elements should be of the same type
    • let a = [1, 2, 3];
    • let a: [f64; 3] = [1.0, 2.0, 3.0];
    • let a = [0; 5];: Creates an array of size 5 with all elements initialized to 0
    • let first = a[0];: Accessing elements of array
    • for element in a.iter() { … }: Iterates over elements in array
    • Rust panics on index out of bounds situations
  • let foo = bar;: Creates immutable variable foo and assigns it value bar.
  • let mut foo = bar;: Creates mutable variable foo and assigns it value bar.
  • let foo: type = false;: Creates immutable variable foo% with explicit type definition.
  • fn function_name() { … }
  • fn function_name(x: i32, y: char) { … }: Parameterized function
  • fn function_name(x: i32) → i32 { … }: Function with return value. Returned value is last evaluated expression of the function body.
  • Associated function: function implemented on a type rather than on a particular instance of the type. Similar as a static method in Java.
  • Destructing: splitting a tuple in individual parts by pattern matching
  • Expression: instructions that evaluate to a resulting value. No semicolon at end of line!
  • Macro:
  • Prelude:
  • Statement: instructions that do not return a value
  • Trait:
  • &var: Passes var as a reference. Allows a function to access a variable without the need to copy it to the function's stack.
  • &mut var: Passes var as a mutable reference. Allows a function to access and alter the variable's value.
  • linux/rust.txt
  • Last modified: 2021/02/14 13:05
  • by kurt.smolderen@empuly.net