SultanC
  1. Home
  2. Examples
  3. Identifiers

Parsing a UUID, reading its version, and printing its canonical form

ids/uuid.sn
// Parsing a UUID, reading its version, and printing its canonical form.
import std.io.println;
import std.text.number;
import std.uuid.uuid;

def main(): int {
    let text: string = "123E4567-E89B-12D3-A456-426614174000";
    match parse_uuid(&text) with
    | result.ok(id) -> {
        println(uuid_to_text(&id));
        println(uint_to_text(uuid_version(&id)));
    }
    | result.err(_) -> { println("invalid uuid"); return 1; };
    let bad: string = "not-a-uuid";
    match parse_uuid(&bad) with
    | result.ok(_) -> { println("unexpected"); }
    | result.err(_) -> { println("rejected invalid uuid"); };
    return 0;
}

Run it

With the interpreter, without compiling:

./build/sultanc run examples/en/ids/uuid.sn

Or compile it to an executable:

./build/sultanc examples/en/ids/uuid.sn -o build/example && ./build/example

Source on GitHub   All examples