mirror of
https://github.com/zap-proto/nim.git
synced 2026-10-30 15:04:34 +00:00
Rename the capnp/ module set to zap/ and the capnpc compiler to zapc; rename all .capnp schemas and fixtures to .zap; update every import, include guard (isInZap), generated-code emission, exception type (ZapFormatError), and the macro-generated zapUnpackStructImpl/ zapPackStructImpl identifiers to the ZAP brand. Zero capnp/Cap'n Proto references remain in source or build files; upstream MIT attribution (Sandstorm, Michał Zieliński) is preserved. Raise the nimble nim floor from the fictional 0.12.0 to the locked, verified 0.15.2 (matches nimenv.cfg/build.sh; code carries fixes through Nim 0.18). Rewrite TODO.md as honest, source-anchored known-limitations (two-word intersegment pointers, nested/named-union codegen, RPC interface inheritance) instead of a bare wishlist.
36 lines
540 B
Plaintext
36 lines
540 B
Plaintext
@0xdbb9ad1f14bf0b36; # unique file ID, generated by `zap id`
|
|
|
|
struct Person {
|
|
name @0 :Text;
|
|
birthdate @3 :Date;
|
|
|
|
email @1 :Text;
|
|
phones @2 :List(PhoneNumber);
|
|
notes @4 :List(Text);
|
|
usosIds @7 :List(Int64);
|
|
|
|
isAwesome @5 :Bool;
|
|
isCloseFriend @6 :Bool = true;
|
|
|
|
struct PhoneNumber {
|
|
number @0 :Text;
|
|
type @1 :Type;
|
|
|
|
enum Type {
|
|
mobile @0;
|
|
home @1;
|
|
work @2;
|
|
}
|
|
}
|
|
}
|
|
|
|
struct Date {
|
|
year @0 :Int16;
|
|
month @1 :UInt8;
|
|
day @2 :UInt8;
|
|
}
|
|
|
|
struct PersonContainer {
|
|
person @0 :AnyPointer;
|
|
}
|