kahl

R⁷RS Scheme parser combinator library for decoding BARE messages

git clone https://git.8pit.net/kahl.git

 1type PublicKey data<128>
 2type Time string # ISO 8601
 3
 4enum Department {
 5	ACCOUNTING
 6	ADMINISTRATION
 7	CUSTOMER_SERVICE
 8	DEVELOPMENT
 9
10	# Reserved for the CEO
11	JSMITH = 99
12}
13
14type Customer {
15	name: string
16	email: string
17	address: Address
18	orders: []{
19		orderId: i64
20		quantity: i32
21	}
22	metadata: map[string]data
23}
24
25type Employee {
26	name: string
27	email: string
28	address: Address
29	department: Department
30	hireDate: Time
31	publicKey: optional<PublicKey>
32	metadata: map[string]data
33}
34
35type TerminatedEmployee void
36
37type Person (Customer | Employee | TerminatedEmployee)
38
39type Address {
40	address: [4]string
41	city: string
42	state: string
43	country: string
44}