Files
2026-05-05 01:38:51 -05:00

41 lines
1.1 KiB
EmacsLisp

// types.el Type definitions and pattern matching.
//
// Demonstrates:
// - type (struct) definitions
// - enum definitions with payloads
// - match expressions with enum patterns
// A user-defined struct type.
// Every field is typed; the type name maps to an Engram graph node.
type User {
id: Uuid
name: String
email: String
}
// An enum with a payload variant.
enum Status {
Active
Inactive
Pending(String)
}
// A function that takes a Status and returns a human-readable string.
fn describe_status(s: Status) -> String {
return match s {
Status::Active => "user is active"
Status::Inactive => "user is inactive"
Status::Pending(reason) => "pending: " + reason
}
}
// Sealed blocks protect sensitive values even in debug builds.
// The runtime enforces that values in sealed blocks are never
// observable through a debugger or memory dump.
sealed {
let api_key: String = "sk-prod-12345"
}
let status: Status = Status::Pending("email not verified")
let description: String = describe_status(status)