Files
zeekay 2aa8261f86 rebrand: complete capnp → ZAP across all C# source/build files
Finishes the in-flight capnp→ZAP rebrand on this branch. The prior commits
renamed identifiers/namespaces/files/projects (Capnp.Net.Runtime→Zap.Net.Runtime,
CapnpC→ZapC, .capnp→.zap) but left the human-readable brand name "Cap'n Proto"
throughout doc-comments, .csproj/.nuspec descriptions, README, MSBuild .xaml
rule display names, and the generated XML doc. This completes brand neutrality:

- Replace 154 "Cap'n Proto" / 4 "Cap'n-Proto" / 1 "Cap'n'p" prose occurrences
  with "ZAP" across 32 first-party files (runtime, generator, zapc-csharp,
  MSBuild integration, chocolatey nuspecs, README, docs, XML doc).
- Revert the LICENSE provenance URL to the real upstream fork
  (c80k/capnproto-dotnetcore) — upstream-fork license headers must stay.
- Canonicalize project/repo URLs to github.com/zap-proto/cs (were fabricated
  c80k/zap-dotnetcore) in csproj/nuspec/VERIFICATION/README badges.
- Canonicalize docs URLs zap-protocol(.github.io|/zap-cs|/zap-cpp-core)
  → zap-proto.dev / github.com/zap-proto/{cs,cpp-core}.
- Collapse redundant "zap \"ZAP\"" PackageTags to "zap".

Verified consistent (no toolchain on host): every .sln/.csproj ProjectReference
resolves; all namespaces are Zap*/ZapC*; MSBuild task chain
(GenerateZapFileCodeBehindTask, ZapFiles ItemGroup, _ZapcCsharp_TaskAssembly)
is uniformly renamed; props/targets/xaml/coverage/chocolatey carry no capnp.

Deliberately preserved as upstream-derived test data (not first-party source):
upstream Cap'n Proto schema fixtures (rpc.zap, rpc-twoparty.zap, json.zap,
rpc-csharp.zap), golden compiler-error outputs (errors.txt), and the
machine-generated DO-NOT-EDIT test.zap.{c++,h}. Their "Cap'n Proto" strings are
the literal output of the external schema compiler the compat test matches.
2026-06-19 23:46:57 -07:00

236 lines
8.3 KiB
Plaintext

# schema.zap
@0xa93fc509624c72d9;
$import "/zap/c++.zap".namespace("zap::schema");
struct Node @0xe682ab4cf923a417 { # 40 bytes, 6 ptrs
id @0 :UInt64; # bits[0, 64)
displayName @1 :Text; # ptr[0]
displayNamePrefixLength @2 :UInt32; # bits[64, 96)
scopeId @3 :UInt64; # bits[128, 192)
parameters @32 :List(Parameter); # ptr[5]
isGeneric @33 :Bool; # bits[288, 289)
nestedNodes @4 :List(NestedNode); # ptr[1]
annotations @5 :List(Annotation); # ptr[2]
union { # tag bits [96, 112)
file @6 :Void; # bits[0, 0), union tag = 0
struct :group { # union tag = 1
dataWordCount @7 :UInt16; # bits[112, 128)
pointerCount @8 :UInt16; # bits[192, 208)
preferredListEncoding @9 :ElementSize; # bits[208, 224)
isGroup @10 :Bool; # bits[224, 225)
discriminantCount @11 :UInt16; # bits[240, 256)
discriminantOffset @12 :UInt32; # bits[256, 288)
fields @13 :List(Field); # ptr[3]
}
enum :group { # union tag = 2
enumerants @14 :List(Enumerant); # ptr[3]
}
interface :group { # union tag = 3
methods @15 :List(Method); # ptr[3]
superclasses @31 :List(Superclass); # ptr[4]
}
const :group { # union tag = 4
type @16 :Type; # ptr[3]
value @17 :Value; # ptr[4]
}
annotation :group { # union tag = 5
type @18 :Type; # ptr[3]
targetsFile @19 :Bool; # bits[112, 113)
targetsConst @20 :Bool; # bits[113, 114)
targetsEnum @21 :Bool; # bits[114, 115)
targetsEnumerant @22 :Bool; # bits[115, 116)
targetsStruct @23 :Bool; # bits[116, 117)
targetsField @24 :Bool; # bits[117, 118)
targetsUnion @25 :Bool; # bits[118, 119)
targetsGroup @26 :Bool; # bits[119, 120)
targetsInterface @27 :Bool; # bits[120, 121)
targetsMethod @28 :Bool; # bits[121, 122)
targetsParam @29 :Bool; # bits[122, 123)
targetsAnnotation @30 :Bool; # bits[123, 124)
}
}
struct Parameter @0xb9521bccf10fa3b1 { # 0 bytes, 1 ptrs
name @0 :Text; # ptr[0]
}
struct NestedNode @0xdebf55bbfa0fc242 { # 8 bytes, 1 ptrs
name @0 :Text; # ptr[0]
id @1 :UInt64; # bits[0, 64)
}
struct SourceInfo @0xf38e1de3041357ae { # 8 bytes, 2 ptrs
id @0 :UInt64; # bits[0, 64)
docComment @1 :Text; # ptr[0]
members @2 :List(Member); # ptr[1]
struct Member @0xc2ba9038898e1fa2 { # 0 bytes, 1 ptrs
docComment @0 :Text; # ptr[0]
}
}
}
struct Field @0x9aad50a41f4af45f { # 24 bytes, 4 ptrs
name @0 :Text; # ptr[0]
codeOrder @1 :UInt16; # bits[0, 16)
annotations @2 :List(Annotation); # ptr[1]
discriminantValue @3 :UInt16 = 65535; # bits[16, 32)
union { # tag bits [64, 80)
slot :group { # union tag = 0
offset @4 :UInt32; # bits[32, 64)
type @5 :Type; # ptr[2]
defaultValue @6 :Value; # ptr[3]
hadExplicitDefault @10 :Bool; # bits[128, 129)
}
group :group { # union tag = 1
typeId @7 :UInt64; # bits[128, 192)
}
}
ordinal :group {
union { # tag bits [80, 96)
implicit @8 :Void; # bits[0, 0), union tag = 0
explicit @9 :UInt16; # bits[96, 112), union tag = 1
}
}
const noDiscriminant @0x97b14cbe7cfec712 :UInt16 = 65535;
}
struct Enumerant @0x978a7cebdc549a4d { # 8 bytes, 2 ptrs
name @0 :Text; # ptr[0]
codeOrder @1 :UInt16; # bits[0, 16)
annotations @2 :List(Annotation); # ptr[1]
}
struct Superclass @0xa9962a9ed0a4d7f8 { # 8 bytes, 1 ptrs
id @0 :UInt64; # bits[0, 64)
brand @1 :Brand; # ptr[0]
}
struct Method @0x9500cce23b334d80 { # 24 bytes, 5 ptrs
name @0 :Text; # ptr[0]
codeOrder @1 :UInt16; # bits[0, 16)
implicitParameters @7 :List(Node.Parameter); # ptr[4]
paramStructType @2 :UInt64; # bits[64, 128)
paramBrand @5 :Brand; # ptr[2]
resultStructType @3 :UInt64; # bits[128, 192)
resultBrand @6 :Brand; # ptr[3]
annotations @4 :List(Annotation); # ptr[1]
}
struct Type @0xd07378ede1f9cc60 { # 24 bytes, 1 ptrs
union { # tag bits [0, 16)
void @0 :Void; # bits[0, 0), union tag = 0
bool @1 :Void; # bits[0, 0), union tag = 1
int8 @2 :Void; # bits[0, 0), union tag = 2
int16 @3 :Void; # bits[0, 0), union tag = 3
int32 @4 :Void; # bits[0, 0), union tag = 4
int64 @5 :Void; # bits[0, 0), union tag = 5
uint8 @6 :Void; # bits[0, 0), union tag = 6
uint16 @7 :Void; # bits[0, 0), union tag = 7
uint32 @8 :Void; # bits[0, 0), union tag = 8
uint64 @9 :Void; # bits[0, 0), union tag = 9
float32 @10 :Void; # bits[0, 0), union tag = 10
float64 @11 :Void; # bits[0, 0), union tag = 11
text @12 :Void; # bits[0, 0), union tag = 12
data @13 :Void; # bits[0, 0), union tag = 13
list :group { # union tag = 14
elementType @14 :Type; # ptr[0]
}
enum :group { # union tag = 15
typeId @15 :UInt64; # bits[64, 128)
brand @21 :Brand; # ptr[0]
}
struct :group { # union tag = 16
typeId @16 :UInt64; # bits[64, 128)
brand @22 :Brand; # ptr[0]
}
interface :group { # union tag = 17
typeId @17 :UInt64; # bits[64, 128)
brand @23 :Brand; # ptr[0]
}
anyPointer :group { # union tag = 18
union { # tag bits [64, 80)
unconstrained :group { # union tag = 0
union { # tag bits [80, 96)
anyKind @18 :Void; # bits[0, 0), union tag = 0
struct @25 :Void; # bits[0, 0), union tag = 1
list @26 :Void; # bits[0, 0), union tag = 2
capability @27 :Void; # bits[0, 0), union tag = 3
}
}
parameter :group { # union tag = 1
scopeId @19 :UInt64; # bits[128, 192)
parameterIndex @20 :UInt16; # bits[80, 96)
}
implicitMethodParameter :group { # union tag = 2
parameterIndex @24 :UInt16; # bits[80, 96)
}
}
}
}
}
struct Brand @0x903455f06065422b { # 0 bytes, 1 ptrs
scopes @0 :List(Scope); # ptr[0]
struct Scope @0xabd73485a9636bc9 { # 16 bytes, 1 ptrs
scopeId @0 :UInt64; # bits[0, 64)
union { # tag bits [64, 80)
bind @1 :List(Binding); # ptr[0], union tag = 0
inherit @2 :Void; # bits[0, 0), union tag = 1
}
}
struct Binding @0xc863cd16969ee7fc { # 8 bytes, 1 ptrs
union { # tag bits [0, 16)
unbound @0 :Void; # bits[0, 0), union tag = 0
type @1 :Type; # ptr[0], union tag = 1
}
}
}
struct Value @0xce23dcd2d7b00c9b { # 16 bytes, 1 ptrs
union { # tag bits [0, 16)
void @0 :Void; # bits[0, 0), union tag = 0
bool @1 :Bool; # bits[16, 17), union tag = 1
int8 @2 :Int8; # bits[16, 24), union tag = 2
int16 @3 :Int16; # bits[16, 32), union tag = 3
int32 @4 :Int32; # bits[32, 64), union tag = 4
int64 @5 :Int64; # bits[64, 128), union tag = 5
uint8 @6 :UInt8; # bits[16, 24), union tag = 6
uint16 @7 :UInt16; # bits[16, 32), union tag = 7
uint32 @8 :UInt32; # bits[32, 64), union tag = 8
uint64 @9 :UInt64; # bits[64, 128), union tag = 9
float32 @10 :Float32; # bits[32, 64), union tag = 10
float64 @11 :Float64; # bits[64, 128), union tag = 11
text @12 :Text; # ptr[0], union tag = 12
data @13 :Data; # ptr[0], union tag = 13
list @14 :AnyPointer; # ptr[0], union tag = 14
enum @15 :UInt16; # bits[16, 32), union tag = 15
struct @16 :AnyPointer; # ptr[0], union tag = 16
interface @17 :Void; # bits[0, 0), union tag = 17
anyPointer @18 :AnyPointer; # ptr[0], union tag = 18
}
}
struct Annotation @0xf1c8950dab257542 { # 8 bytes, 2 ptrs
id @0 :UInt64; # bits[0, 64)
brand @2 :Brand; # ptr[1]
value @1 :Value; # ptr[0]
}
enum ElementSize @0xd1958f7dba521926 {
empty @0;
bit @1;
byte @2;
twoBytes @3;
fourBytes @4;
eightBytes @5;
pointer @6;
inlineComposite @7;
}
struct ZapVersion @0xd85d305b7d839963 { # 8 bytes, 0 ptrs
major @0 :UInt16; # bits[0, 16)
minor @1 :UInt8; # bits[16, 24)
micro @2 :UInt8; # bits[24, 32)
}
struct CodeGeneratorRequest @0xbfc546f6210ad7ce { # 0 bytes, 4 ptrs
zapVersion @2 :ZapVersion; # ptr[2]
nodes @0 :List(Node); # ptr[0]
sourceInfo @3 :List(Node.SourceInfo); # ptr[3]
requestedFiles @1 :List(RequestedFile); # ptr[1]
struct RequestedFile @0xcfea0eb02e810062 { # 8 bytes, 2 ptrs
id @0 :UInt64; # bits[0, 64)
filename @1 :Text; # ptr[0]
imports @2 :List(Import); # ptr[1]
struct Import @0xae504193122357e5 { # 8 bytes, 1 ptrs
id @0 :UInt64; # bits[0, 64)
name @1 :Text; # ptr[0]
}
}
}