Cap'n Proto provides a schema loader, which can be used to dynamically load schemas during runtime. To port this functionality to pycapnp, a new class is provided `C_SchemaLoader`, which exposes the Cap'n Proto C++ interface, and `SchemaLoader`, which is part of the pycapnp library. The specific use case for this is when a capnp message contains a Node.Reader: The schema for a yet unseen message can be loaded dynamically, allowing the future message to be properly processed. If the message is a struct containing other structs, all the schemas for every struct must be loaded to correctly parse the message. See https://github.com/DaneSlattery/capnp_generic_poc for a proof-of-concept. Add docs and cleanup Add more docs Reduce changes Fix flake8 formatting Fix get datatype
21 lines
218 B
Cap'n Proto
21 lines
218 B
Cap'n Proto
@0x84ed73ce30ad1d3f;
|
|
|
|
struct Foo {
|
|
id @0 :UInt32;
|
|
name @1 :Text;
|
|
}
|
|
|
|
|
|
struct Baz{
|
|
text @0 :Text;
|
|
qux @1 :Qux;
|
|
}
|
|
|
|
struct Qux{
|
|
id @0 :UInt64;
|
|
}
|
|
|
|
interface Wrapper {
|
|
wrapped @0 (object :AnyPointer);
|
|
}
|