From 3be32662a7d4e40a227aeb182958539c57666c4f Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 17:03:21 +0200 Subject: [PATCH 01/12] Implemenent capnp codegen by flag --- hypersync-net-types/Cargo.toml | 3 + hypersync-net-types/build.rs | 17 +- .../src/hypersync_net_types_capnp.rs | 1017 +++++++++++++++++ hypersync-net-types/src/lib.rs | 4 +- 4 files changed, 1034 insertions(+), 7 deletions(-) create mode 100644 hypersync-net-types/src/hypersync_net_types_capnp.rs diff --git a/hypersync-net-types/Cargo.toml b/hypersync-net-types/Cargo.toml index f4f1a91..c9d68fc 100644 --- a/hypersync-net-types/Cargo.toml +++ b/hypersync-net-types/Cargo.toml @@ -14,3 +14,6 @@ hypersync-format = { path = "../hypersync-format", version = "0.4" } [build-dependencies] capnpc = "0.19" + +[features] +capnp-build = [] diff --git a/hypersync-net-types/build.rs b/hypersync-net-types/build.rs index f8902cb..33519ea 100644 --- a/hypersync-net-types/build.rs +++ b/hypersync-net-types/build.rs @@ -1,6 +1,15 @@ +use std::env; fn main() { - capnpc::CompilerCommand::new() - .file("hypersync_net_types.capnp") - .run() - .expect("compiling schema"); + // if you want to rebuild the capnp schema, run this command + // cargo build --features capnp-build + if env::var("CARGO_FEATURE_CAPNP_BUILD").is_ok() { + let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); + let output_path = format!("{manifest_dir}/src"); + capnpc::CompilerCommand::new() + .file("hypersync_net_types.capnp") + .output_path(output_path) + // .raw_code_generator_request_path("./hypersync-net-types/src/capnp_schema") + .run() + .expect("compiling schema"); + } } diff --git a/hypersync-net-types/src/hypersync_net_types_capnp.rs b/hypersync-net-types/src/hypersync_net_types_capnp.rs new file mode 100644 index 0000000..5e16038 --- /dev/null +++ b/hypersync-net-types/src/hypersync_net_types_capnp.rs @@ -0,0 +1,1017 @@ +// @generated by the capnpc-rust plugin to the Cap'n Proto schema compiler. +// DO NOT EDIT. +// source: hypersync_net_types.capnp + + +pub mod query_response_data { + #[derive(Copy, Clone)] + pub struct Owned(()); + impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } } + impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } + impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } + impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; } + + pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> } + impl <'a,> ::core::marker::Copy for Reader<'a,> {} + impl <'a,> ::core::clone::Clone for Reader<'a,> { + fn clone(&self) -> Self { *self } + } + + impl <'a,> ::capnp::traits::HasTypeId for Reader<'a,> { + const TYPE_ID: u64 = _private::TYPE_ID; + } + impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,> { + fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { + Self { reader, } + } + } + + impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { + fn from(reader: Reader<'a,>) -> Self { + Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + } + } + + impl <'a,> ::core::fmt::Debug for Reader<'a,> { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> { + core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f) + } + } + + impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,> { + fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { + ::core::result::Result::Ok(reader.get_struct(default)?.into()) + } + } + + impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,> { + fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { + self.reader + } + } + + impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,> { + fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { + self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + } + } + + impl <'a,> Reader<'a,> { + pub fn reborrow(&self) -> Reader<'_,> { + Self { .. *self } + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.reader.total_size() + } + #[inline] + pub fn get_blocks(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None) + } + #[inline] + pub fn has_blocks(&self) -> bool { + !self.reader.get_pointer_field(0).is_null() + } + #[inline] + pub fn get_transactions(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None) + } + #[inline] + pub fn has_transactions(&self) -> bool { + !self.reader.get_pointer_field(1).is_null() + } + #[inline] + pub fn get_logs(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(2), ::core::option::Option::None) + } + #[inline] + pub fn has_logs(&self) -> bool { + !self.reader.get_pointer_field(2).is_null() + } + #[inline] + pub fn get_traces(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(3), ::core::option::Option::None) + } + #[inline] + pub fn has_traces(&self) -> bool { + !self.reader.get_pointer_field(3).is_null() + } + } + + pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> } + impl <'a,> ::capnp::traits::HasStructSize for Builder<'a,> { + const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 0, pointers: 4 }; + } + impl <'a,> ::capnp::traits::HasTypeId for Builder<'a,> { + const TYPE_ID: u64 = _private::TYPE_ID; + } + impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,> { + fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { + Self { builder, } + } + } + + impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { + fn from(builder: Builder<'a,>) -> Self { + Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + } + } + + impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,> { + fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { + self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + } + } + + impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,> { + fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { + builder.init_struct(::STRUCT_SIZE).into() + } + fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { + ::core::result::Result::Ok(builder.get_struct(::STRUCT_SIZE, default)?.into()) + } + } + + impl <'a,> ::capnp::traits::SetterInput> for Reader<'a,> { + fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) } + } + + impl <'a,> Builder<'a,> { + pub fn into_reader(self) -> Reader<'a,> { + self.builder.into_reader().into() + } + pub fn reborrow(&mut self) -> Builder<'_,> { + Builder { builder: self.builder.reborrow() } + } + pub fn reborrow_as_reader(&self) -> Reader<'_,> { + self.builder.as_reader().into() + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.builder.as_reader().total_size() + } + #[inline] + pub fn get_blocks(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None) + } + #[inline] + pub fn set_blocks(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(0).set_data(value); + } + #[inline] + pub fn init_blocks(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(0).init_data(size) + } + #[inline] + pub fn has_blocks(&self) -> bool { + !self.builder.is_pointer_field_null(0) + } + #[inline] + pub fn get_transactions(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None) + } + #[inline] + pub fn set_transactions(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(1).set_data(value); + } + #[inline] + pub fn init_transactions(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(1).init_data(size) + } + #[inline] + pub fn has_transactions(&self) -> bool { + !self.builder.is_pointer_field_null(1) + } + #[inline] + pub fn get_logs(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(2), ::core::option::Option::None) + } + #[inline] + pub fn set_logs(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(2).set_data(value); + } + #[inline] + pub fn init_logs(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(2).init_data(size) + } + #[inline] + pub fn has_logs(&self) -> bool { + !self.builder.is_pointer_field_null(2) + } + #[inline] + pub fn get_traces(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(3), ::core::option::Option::None) + } + #[inline] + pub fn set_traces(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(3).set_data(value); + } + #[inline] + pub fn init_traces(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(3).init_data(size) + } + #[inline] + pub fn has_traces(&self) -> bool { + !self.builder.is_pointer_field_null(3) + } + } + + pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline } + impl ::capnp::capability::FromTypelessPipeline for Pipeline { + fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { + Self { _typeless: typeless, } + } + } + impl Pipeline { + } + mod _private { + pub static ENCODED_NODE: [::capnp::Word; 82] = [ + ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + ::capnp::word(49, 157, 62, 151, 169, 39, 204, 137), + ::capnp::word(26, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), + ::capnp::word(4, 0, 7, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(22, 0, 0, 0, 138, 0, 0, 0), + ::capnp::word(21, 0, 0, 0, 98, 1, 0, 0), + ::capnp::word(41, 0, 0, 0, 7, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(37, 0, 0, 0, 231, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), + ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), + ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), + ::capnp::word(112, 58, 81, 117, 101, 114, 121, 82), + ::capnp::word(101, 115, 112, 111, 110, 115, 101, 68), + ::capnp::word(97, 116, 97, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), + ::capnp::word(16, 0, 0, 0, 3, 0, 4, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(97, 0, 0, 0, 58, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(92, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(104, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(101, 0, 0, 0, 106, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(100, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(112, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(2, 0, 0, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(109, 0, 0, 0, 42, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(116, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(3, 0, 0, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(113, 0, 0, 0, 58, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(108, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(120, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(98, 108, 111, 99, 107, 115, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 114, 97, 110, 115, 97, 99, 116), + ::capnp::word(105, 111, 110, 115, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(108, 111, 103, 115, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 114, 97, 99, 101, 115, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ]; + pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { + match index { + 0 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 1 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 2 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 3 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + _ => panic!("invalid field index {}", index), + } + } + pub fn get_annotation_types(child_index: Option, index: u32) -> ::capnp::introspect::Type { + panic!("invalid annotation indices ({:?}, {}) ", child_index, index) + } + pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema { + encoded_node: &ENCODED_NODE, + nonunion_members: NONUNION_MEMBERS, + members_by_discriminant: MEMBERS_BY_DISCRIMINANT, + members_by_name: MEMBERS_BY_NAME, + }; + pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3]; + pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[]; + pub static MEMBERS_BY_NAME : &[u16] = &[0,2,3,1]; + pub const TYPE_ID: u64 = 0x89cc_27a9_973e_9d31; + } +} + +pub mod rollback_guard { + #[derive(Copy, Clone)] + pub struct Owned(()); + impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } } + impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } + impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } + impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; } + + pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> } + impl <'a,> ::core::marker::Copy for Reader<'a,> {} + impl <'a,> ::core::clone::Clone for Reader<'a,> { + fn clone(&self) -> Self { *self } + } + + impl <'a,> ::capnp::traits::HasTypeId for Reader<'a,> { + const TYPE_ID: u64 = _private::TYPE_ID; + } + impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,> { + fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { + Self { reader, } + } + } + + impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { + fn from(reader: Reader<'a,>) -> Self { + Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + } + } + + impl <'a,> ::core::fmt::Debug for Reader<'a,> { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> { + core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f) + } + } + + impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,> { + fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { + ::core::result::Result::Ok(reader.get_struct(default)?.into()) + } + } + + impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,> { + fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { + self.reader + } + } + + impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,> { + fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { + self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + } + } + + impl <'a,> Reader<'a,> { + pub fn reborrow(&self) -> Reader<'_,> { + Self { .. *self } + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.reader.total_size() + } + #[inline] + pub fn get_hash(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None) + } + #[inline] + pub fn has_hash(&self) -> bool { + !self.reader.get_pointer_field(0).is_null() + } + #[inline] + pub fn get_block_number(self) -> u64 { + self.reader.get_data_field::(0) + } + #[inline] + pub fn get_timestamp(self) -> i64 { + self.reader.get_data_field::(1) + } + #[inline] + pub fn get_first_block_number(self) -> u64 { + self.reader.get_data_field::(2) + } + #[inline] + pub fn get_first_parent_hash(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None) + } + #[inline] + pub fn has_first_parent_hash(&self) -> bool { + !self.reader.get_pointer_field(1).is_null() + } + } + + pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> } + impl <'a,> ::capnp::traits::HasStructSize for Builder<'a,> { + const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 3, pointers: 2 }; + } + impl <'a,> ::capnp::traits::HasTypeId for Builder<'a,> { + const TYPE_ID: u64 = _private::TYPE_ID; + } + impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,> { + fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { + Self { builder, } + } + } + + impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { + fn from(builder: Builder<'a,>) -> Self { + Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + } + } + + impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,> { + fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { + self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + } + } + + impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,> { + fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { + builder.init_struct(::STRUCT_SIZE).into() + } + fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { + ::core::result::Result::Ok(builder.get_struct(::STRUCT_SIZE, default)?.into()) + } + } + + impl <'a,> ::capnp::traits::SetterInput> for Reader<'a,> { + fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) } + } + + impl <'a,> Builder<'a,> { + pub fn into_reader(self) -> Reader<'a,> { + self.builder.into_reader().into() + } + pub fn reborrow(&mut self) -> Builder<'_,> { + Builder { builder: self.builder.reborrow() } + } + pub fn reborrow_as_reader(&self) -> Reader<'_,> { + self.builder.as_reader().into() + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.builder.as_reader().total_size() + } + #[inline] + pub fn get_hash(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None) + } + #[inline] + pub fn set_hash(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(0).set_data(value); + } + #[inline] + pub fn init_hash(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(0).init_data(size) + } + #[inline] + pub fn has_hash(&self) -> bool { + !self.builder.is_pointer_field_null(0) + } + #[inline] + pub fn get_block_number(self) -> u64 { + self.builder.get_data_field::(0) + } + #[inline] + pub fn set_block_number(&mut self, value: u64) { + self.builder.set_data_field::(0, value); + } + #[inline] + pub fn get_timestamp(self) -> i64 { + self.builder.get_data_field::(1) + } + #[inline] + pub fn set_timestamp(&mut self, value: i64) { + self.builder.set_data_field::(1, value); + } + #[inline] + pub fn get_first_block_number(self) -> u64 { + self.builder.get_data_field::(2) + } + #[inline] + pub fn set_first_block_number(&mut self, value: u64) { + self.builder.set_data_field::(2, value); + } + #[inline] + pub fn get_first_parent_hash(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None) + } + #[inline] + pub fn set_first_parent_hash(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(1).set_data(value); + } + #[inline] + pub fn init_first_parent_hash(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(1).init_data(size) + } + #[inline] + pub fn has_first_parent_hash(&self) -> bool { + !self.builder.is_pointer_field_null(1) + } + } + + pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline } + impl ::capnp::capability::FromTypelessPipeline for Pipeline { + fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { + Self { _typeless: typeless, } + } + } + impl Pipeline { + } + mod _private { + pub static ENCODED_NODE: [::capnp::Word; 100] = [ + ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + ::capnp::word(75, 175, 253, 87, 239, 86, 125, 149), + ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), + ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), + ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(140, 0, 0, 0, 43, 1, 0, 0), + ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), + ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(33, 0, 0, 0, 31, 1, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), + ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), + ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), + ::capnp::word(112, 58, 82, 111, 108, 108, 98, 97), + ::capnp::word(99, 107, 71, 117, 97, 114, 100, 0), + ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), + ::capnp::word(20, 0, 0, 0, 3, 0, 4, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(125, 0, 0, 0, 42, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(120, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(132, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(129, 0, 0, 0, 98, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(128, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(140, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(2, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(137, 0, 0, 0, 82, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(136, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(148, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(3, 0, 0, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(145, 0, 0, 0, 138, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(148, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(160, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(4, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(157, 0, 0, 0, 130, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(156, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(168, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(104, 97, 115, 104, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(98, 108, 111, 99, 107, 78, 117, 109), + ::capnp::word(98, 101, 114, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 105, 109, 101, 115, 116, 97, 109), + ::capnp::word(112, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(102, 105, 114, 115, 116, 66, 108, 111), + ::capnp::word(99, 107, 78, 117, 109, 98, 101, 114), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(102, 105, 114, 115, 116, 80, 97, 114), + ::capnp::word(101, 110, 116, 72, 97, 115, 104, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ]; + pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { + match index { + 0 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 1 => ::introspect(), + 2 => ::introspect(), + 3 => ::introspect(), + 4 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + _ => panic!("invalid field index {}", index), + } + } + pub fn get_annotation_types(child_index: Option, index: u32) -> ::capnp::introspect::Type { + panic!("invalid annotation indices ({:?}, {}) ", child_index, index) + } + pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema { + encoded_node: &ENCODED_NODE, + nonunion_members: NONUNION_MEMBERS, + members_by_discriminant: MEMBERS_BY_DISCRIMINANT, + members_by_name: MEMBERS_BY_NAME, + }; + pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3,4]; + pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[]; + pub static MEMBERS_BY_NAME : &[u16] = &[1,3,4,0,2]; + pub const TYPE_ID: u64 = 0x957d_56ef_57fd_af4b; + } +} + +pub mod query_response { + #[derive(Copy, Clone)] + pub struct Owned(()); + impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } } + impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } + impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } + impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; } + + pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> } + impl <'a,> ::core::marker::Copy for Reader<'a,> {} + impl <'a,> ::core::clone::Clone for Reader<'a,> { + fn clone(&self) -> Self { *self } + } + + impl <'a,> ::capnp::traits::HasTypeId for Reader<'a,> { + const TYPE_ID: u64 = _private::TYPE_ID; + } + impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,> { + fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { + Self { reader, } + } + } + + impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { + fn from(reader: Reader<'a,>) -> Self { + Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + } + } + + impl <'a,> ::core::fmt::Debug for Reader<'a,> { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> { + core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f) + } + } + + impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,> { + fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { + ::core::result::Result::Ok(reader.get_struct(default)?.into()) + } + } + + impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,> { + fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { + self.reader + } + } + + impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,> { + fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { + self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + } + } + + impl <'a,> Reader<'a,> { + pub fn reborrow(&self) -> Reader<'_,> { + Self { .. *self } + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.reader.total_size() + } + #[inline] + pub fn get_archive_height(self) -> i64 { + self.reader.get_data_field::(0) + } + #[inline] + pub fn get_next_block(self) -> u64 { + self.reader.get_data_field::(1) + } + #[inline] + pub fn get_total_execution_time(self) -> u64 { + self.reader.get_data_field::(2) + } + #[inline] + pub fn get_data(self) -> ::capnp::Result> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None) + } + #[inline] + pub fn has_data(&self) -> bool { + !self.reader.get_pointer_field(0).is_null() + } + #[inline] + pub fn get_rollback_guard(self) -> ::capnp::Result> { + ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None) + } + #[inline] + pub fn has_rollback_guard(&self) -> bool { + !self.reader.get_pointer_field(1).is_null() + } + } + + pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> } + impl <'a,> ::capnp::traits::HasStructSize for Builder<'a,> { + const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 3, pointers: 2 }; + } + impl <'a,> ::capnp::traits::HasTypeId for Builder<'a,> { + const TYPE_ID: u64 = _private::TYPE_ID; + } + impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,> { + fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { + Self { builder, } + } + } + + impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { + fn from(builder: Builder<'a,>) -> Self { + Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + } + } + + impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,> { + fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { + self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + } + } + + impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,> { + fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { + builder.init_struct(::STRUCT_SIZE).into() + } + fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { + ::core::result::Result::Ok(builder.get_struct(::STRUCT_SIZE, default)?.into()) + } + } + + impl <'a,> ::capnp::traits::SetterInput> for Reader<'a,> { + fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) } + } + + impl <'a,> Builder<'a,> { + pub fn into_reader(self) -> Reader<'a,> { + self.builder.into_reader().into() + } + pub fn reborrow(&mut self) -> Builder<'_,> { + Builder { builder: self.builder.reborrow() } + } + pub fn reborrow_as_reader(&self) -> Reader<'_,> { + self.builder.as_reader().into() + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.builder.as_reader().total_size() + } + #[inline] + pub fn get_archive_height(self) -> i64 { + self.builder.get_data_field::(0) + } + #[inline] + pub fn set_archive_height(&mut self, value: i64) { + self.builder.set_data_field::(0, value); + } + #[inline] + pub fn get_next_block(self) -> u64 { + self.builder.get_data_field::(1) + } + #[inline] + pub fn set_next_block(&mut self, value: u64) { + self.builder.set_data_field::(1, value); + } + #[inline] + pub fn get_total_execution_time(self) -> u64 { + self.builder.get_data_field::(2) + } + #[inline] + pub fn set_total_execution_time(&mut self, value: u64) { + self.builder.set_data_field::(2, value); + } + #[inline] + pub fn get_data(self) -> ::capnp::Result> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None) + } + #[inline] + pub fn set_data(&mut self, value: crate::hypersync_net_types_capnp::query_response_data::Reader<'_>) -> ::capnp::Result<()> { + ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false) + } + #[inline] + pub fn init_data(self, ) -> crate::hypersync_net_types_capnp::query_response_data::Builder<'a> { + ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) + } + #[inline] + pub fn has_data(&self) -> bool { + !self.builder.is_pointer_field_null(0) + } + #[inline] + pub fn get_rollback_guard(self) -> ::capnp::Result> { + ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None) + } + #[inline] + pub fn set_rollback_guard(&mut self, value: crate::hypersync_net_types_capnp::rollback_guard::Reader<'_>) -> ::capnp::Result<()> { + ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(1), value, false) + } + #[inline] + pub fn init_rollback_guard(self, ) -> crate::hypersync_net_types_capnp::rollback_guard::Builder<'a> { + ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), 0) + } + #[inline] + pub fn has_rollback_guard(&self) -> bool { + !self.builder.is_pointer_field_null(1) + } + } + + pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline } + impl ::capnp::capability::FromTypelessPipeline for Pipeline { + fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { + Self { _typeless: typeless, } + } + } + impl Pipeline { + pub fn get_data(&self) -> crate::hypersync_net_types_capnp::query_response_data::Pipeline { + ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0)) + } + pub fn get_rollback_guard(&self) -> crate::hypersync_net_types_capnp::rollback_guard::Pipeline { + ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1)) + } + } + mod _private { + pub static ENCODED_NODE: [::capnp::Word; 100] = [ + ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + ::capnp::word(226, 9, 54, 243, 16, 76, 106, 205), + ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), + ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), + ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(45, 1, 0, 0, 228, 1, 0, 0), + ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), + ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(33, 0, 0, 0, 31, 1, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), + ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), + ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), + ::capnp::word(112, 58, 81, 117, 101, 114, 121, 82), + ::capnp::word(101, 115, 112, 111, 110, 115, 101, 0), + ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), + ::capnp::word(20, 0, 0, 0, 3, 0, 4, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(125, 0, 0, 0, 114, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(124, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(136, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(133, 0, 0, 0, 82, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(132, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(144, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(2, 0, 0, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(141, 0, 0, 0, 154, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(144, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(156, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(3, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(153, 0, 0, 0, 42, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(148, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(160, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(4, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(157, 0, 0, 0, 114, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(156, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(168, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(97, 114, 99, 104, 105, 118, 101, 72), + ::capnp::word(101, 105, 103, 104, 116, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(110, 101, 120, 116, 66, 108, 111, 99), + ::capnp::word(107, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 111, 116, 97, 108, 69, 120, 101), + ::capnp::word(99, 117, 116, 105, 111, 110, 84, 105), + ::capnp::word(109, 101, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(100, 97, 116, 97, 0, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(49, 157, 62, 151, 169, 39, 204, 137), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(114, 111, 108, 108, 98, 97, 99, 107), + ::capnp::word(71, 117, 97, 114, 100, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(75, 175, 253, 87, 239, 86, 125, 149), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ]; + pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { + match index { + 0 => ::introspect(), + 1 => ::introspect(), + 2 => ::introspect(), + 3 => ::introspect(), + 4 => ::introspect(), + _ => panic!("invalid field index {}", index), + } + } + pub fn get_annotation_types(child_index: Option, index: u32) -> ::capnp::introspect::Type { + panic!("invalid annotation indices ({:?}, {}) ", child_index, index) + } + pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema { + encoded_node: &ENCODED_NODE, + nonunion_members: NONUNION_MEMBERS, + members_by_discriminant: MEMBERS_BY_DISCRIMINANT, + members_by_name: MEMBERS_BY_NAME, + }; + pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3,4]; + pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[]; + pub static MEMBERS_BY_NAME : &[u16] = &[0,3,1,4,2]; + pub const TYPE_ID: u64 = 0xcd6a_4c10_f336_09e2; + } +} diff --git a/hypersync-net-types/src/lib.rs b/hypersync-net-types/src/lib.rs index 9086696..ad15212 100644 --- a/hypersync-net-types/src/lib.rs +++ b/hypersync-net-types/src/lib.rs @@ -6,9 +6,7 @@ use serde::{Deserialize, Serialize}; pub type Sighash = FixedSizeData<4>; -pub mod hypersync_net_types_capnp { - include!(concat!(env!("OUT_DIR"), "/hypersync_net_types_capnp.rs")); -} +pub mod hypersync_net_types_capnp; #[derive(Default, Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BlockSelection { From 7e8f3d2288ed9ef2cf14d69bd644a4d6b43815c1 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 17:12:34 +0200 Subject: [PATCH 02/12] Adds CI and documentation --- .github/workflows/ci.yaml | 50 ++++++++++++++++++----------------- README.md | 14 ++++++++-- hypersync-net-types/README.md | 19 +++++++++++++ 3 files changed, 57 insertions(+), 26 deletions(-) create mode 100644 hypersync-net-types/README.md diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d328577..4450e19 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,41 +19,43 @@ jobs: test_dev: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: Swatinem/rust-cache@v2 - - name: Install Dependencies - run: | + - uses: actions/checkout@v3 + - uses: Swatinem/rust-cache@v2 + - name: Build + run: cargo build + - name: Test + run: cargo test + - name: Check capnp schema should match the generated code + run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get install -y capnproto libcapnp-dev - - name: Build - run: cargo build - - name: Test - run: cargo test + cargo build --features capnp-build + git diff --exit-code test_release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: Swatinem/rust-cache@v2 - - name: Install Dependencies - run: | + - uses: actions/checkout@v3 + - uses: Swatinem/rust-cache@v2 + - name: Install Dependencies + run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get install -y capnproto libcapnp-dev - - name: Build - run: cargo build --release - - name: Test - run: cargo test --release + - name: Build + run: cargo build --release + - name: Test + run: cargo test --release lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: Swatinem/rust-cache@v2 - - name: Install Dependencies - run: | + - uses: actions/checkout@v3 + - uses: Swatinem/rust-cache@v2 + - name: Install Dependencies + run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get install -y capnproto libcapnp-dev - - name: Rustfmt - run: cargo fmt --check - - name: Clippy - run: cargo clippy -- -Dwarnings \ No newline at end of file + - name: Rustfmt + run: cargo fmt --check + - name: Clippy + run: cargo clippy -- -Dwarnings diff --git a/README.md b/README.md index c8d32ee..f6e1261 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![CI](https://github.com/enviodev/hypersync-client-rust/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/enviodev/hypersync-client-rust/actions/workflows/ci.yaml) - Crates.io version @@ -12,7 +12,7 @@ Rust crate for [Envio's](https://envio.dev/) HyperSync client. ### Dependencies -Need to install capnproto tool in order to build the library. +In order to update the capnp schema on hypersync-net-types, you will need to install the `capnproto` tool. #### Linux @@ -31,3 +31,13 @@ choco install capnproto ```bash brew install capnp ``` + +## Building + +To build the schema, run the following command: + +```bash +cargo build --features capnp-build +``` + +This triggers the build script in hypersync-net-types, which will generate the `hypersync_net_types_capnp.rs` file in the `src` directory. diff --git a/hypersync-net-types/README.md b/hypersync-net-types/README.md new file mode 100644 index 0000000..43701f3 --- /dev/null +++ b/hypersync-net-types/README.md @@ -0,0 +1,19 @@ +# hypersync-net-types + +This crate contains the capnp schema for the hypersync network protocol. + +## Building + +To build the schema, run the following command: + +```bash +cargo build --features capnp-build +``` + +This will generate the `hypersync_net_types_capnp.rs` file in the `src` directory. + +The build script will not run on a normal build, so you will need to run it manually if you make changes to the schema. + +The ci tests will fail if the schema is not up to date. + +This is to avoid the need to have a capnp compiler installed on the consumers of this crate. From a2991c65f3e1ae3e2430fb95c3577f1d4967d038 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 18:28:55 +0200 Subject: [PATCH 03/12] Move capnp build to make file --- .github/workflows/ci.yaml | 2 +- README.md | 3 +- hypersync-net-types/Cargo.toml | 6 - hypersync-net-types/README.md | 4 +- hypersync-net-types/build.rs | 15 - hypersync-net-types/makefile | 6 + .../src/hypersync_net_types_capnp.rs | 2119 ++++++++++------- 7 files changed, 1229 insertions(+), 926 deletions(-) delete mode 100644 hypersync-net-types/build.rs create mode 100644 hypersync-net-types/makefile diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4450e19..1c33c20 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -29,7 +29,7 @@ jobs: run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get install -y capnproto libcapnp-dev - cargo build --features capnp-build + make capnp-build git diff --exit-code test_release: diff --git a/README.md b/README.md index f6e1261..c4007fb 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,8 @@ brew install capnp To build the schema, run the following command: ```bash -cargo build --features capnp-build +cd hypersync-net-types +make capnp-build ``` This triggers the build script in hypersync-net-types, which will generate the `hypersync_net_types_capnp.rs` file in the `src` directory. diff --git a/hypersync-net-types/Cargo.toml b/hypersync-net-types/Cargo.toml index c9d68fc..2cf8e5c 100644 --- a/hypersync-net-types/Cargo.toml +++ b/hypersync-net-types/Cargo.toml @@ -11,9 +11,3 @@ serde = { version = "1", features = ["derive"] } arrayvec = { version = "0.7", features = ["serde"] } hypersync-format = { path = "../hypersync-format", version = "0.4" } - -[build-dependencies] -capnpc = "0.19" - -[features] -capnp-build = [] diff --git a/hypersync-net-types/README.md b/hypersync-net-types/README.md index 43701f3..6e4a1a5 100644 --- a/hypersync-net-types/README.md +++ b/hypersync-net-types/README.md @@ -7,12 +7,12 @@ This crate contains the capnp schema for the hypersync network protocol. To build the schema, run the following command: ```bash -cargo build --features capnp-build +make capnp-build ``` This will generate the `hypersync_net_types_capnp.rs` file in the `src` directory. -The build script will not run on a normal build, so you will need to run it manually if you make changes to the schema. +The build script will not run on every build, so you will need to run it manually if you make changes to the schema. The ci tests will fail if the schema is not up to date. diff --git a/hypersync-net-types/build.rs b/hypersync-net-types/build.rs deleted file mode 100644 index 33519ea..0000000 --- a/hypersync-net-types/build.rs +++ /dev/null @@ -1,15 +0,0 @@ -use std::env; -fn main() { - // if you want to rebuild the capnp schema, run this command - // cargo build --features capnp-build - if env::var("CARGO_FEATURE_CAPNP_BUILD").is_ok() { - let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); - let output_path = format!("{manifest_dir}/src"); - capnpc::CompilerCommand::new() - .file("hypersync_net_types.capnp") - .output_path(output_path) - // .raw_code_generator_request_path("./hypersync-net-types/src/capnp_schema") - .run() - .expect("compiling schema"); - } -} diff --git a/hypersync-net-types/makefile b/hypersync-net-types/makefile new file mode 100644 index 0000000..cd830e2 --- /dev/null +++ b/hypersync-net-types/makefile @@ -0,0 +1,6 @@ +.PHONY: capnp-build + +capnp-build: + cargo install capnpc + capnp compile -orust:src hypersync_net_types.capnp + rustfmt -- src/hypersync_net_types_capnp.rs diff --git a/hypersync-net-types/src/hypersync_net_types_capnp.rs b/hypersync-net-types/src/hypersync_net_types_capnp.rs index 5e16038..70ba285 100644 --- a/hypersync-net-types/src/hypersync_net_types_capnp.rs +++ b/hypersync-net-types/src/hypersync_net_types_capnp.rs @@ -2,996 +2,1309 @@ // DO NOT EDIT. // source: hypersync_net_types.capnp - pub mod query_response_data { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } } - impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } - impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } - impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; } - - pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> } - impl <'a,> ::core::marker::Copy for Reader<'a,> {} - impl <'a,> ::core::clone::Clone for Reader<'a,> { - fn clone(&self) -> Self { *self } - } + #[derive(Copy, Clone)] + pub struct Owned(()); - impl <'a,> ::capnp::traits::HasTypeId for Reader<'a,> { - const TYPE_ID: u64 = _private::TYPE_ID; - } - impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,> { - fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { - Self { reader, } + impl ::capnp::introspect::Introspect for Owned { + fn introspect() -> ::capnp::introspect::Type { + ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }) + .into() + } + } + impl ::capnp::traits::Owned for Owned { + type Reader<'a> = Reader<'a>; + type Builder<'a> = Builder<'a>; + } + impl ::capnp::traits::OwnedStruct for Owned { + type Reader<'a> = Reader<'a>; + type Builder<'a> = Builder<'a>; + } + impl ::capnp::traits::Pipelined for Owned { + type Pipeline = Pipeline; } - } - impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { - fn from(reader: Reader<'a,>) -> Self { - Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + pub struct Reader<'a> { + reader: ::capnp::private::layout::StructReader<'a>, } - } - - impl <'a,> ::core::fmt::Debug for Reader<'a,> { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> { - core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f) + impl ::core::marker::Copy for Reader<'_> {} + impl ::core::clone::Clone for Reader<'_> { + fn clone(&self) -> Self { + *self + } } - } - impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,> { - fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { - ::core::result::Result::Ok(reader.get_struct(default)?.into()) + impl ::capnp::traits::HasTypeId for Reader<'_> { + const TYPE_ID: u64 = _private::TYPE_ID; } - } - - impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,> { - fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { - self.reader + impl<'a> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a> { + fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { + Self { reader } + } } - } - impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,> { - fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { - self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + impl<'a> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { + fn from(reader: Reader<'a>) -> Self { + Self::Struct(::capnp::dynamic_struct::Reader::new( + reader.reader, + ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }), + )) + } } - } - impl <'a,> Reader<'a,> { - pub fn reborrow(&self) -> Reader<'_,> { - Self { .. *self } + impl ::core::fmt::Debug for Reader<'_> { + fn fmt( + &self, + f: &mut ::core::fmt::Formatter<'_>, + ) -> ::core::result::Result<(), ::core::fmt::Error> { + core::fmt::Debug::fmt( + &::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), + f, + ) + } } - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_blocks(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None) + impl<'a> ::capnp::traits::FromPointerReader<'a> for Reader<'a> { + fn get_from_pointer( + reader: &::capnp::private::layout::PointerReader<'a>, + default: ::core::option::Option<&'a [::capnp::Word]>, + ) -> ::capnp::Result { + ::core::result::Result::Ok(reader.get_struct(default)?.into()) + } } - #[inline] - pub fn has_blocks(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() + + impl<'a> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a> { + fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { + self.reader + } } - #[inline] - pub fn get_transactions(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None) + + impl<'a> ::capnp::traits::Imbue<'a> for Reader<'a> { + fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { + self.reader + .imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + } } - #[inline] - pub fn has_transactions(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() + + impl<'a> Reader<'a> { + pub fn reborrow(&self) -> Reader<'_> { + Self { ..*self } + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.reader.total_size() + } + #[inline] + pub fn get_blocks(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(0), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_blocks(&self) -> bool { + !self.reader.get_pointer_field(0).is_null() + } + #[inline] + pub fn get_transactions(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(1), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_transactions(&self) -> bool { + !self.reader.get_pointer_field(1).is_null() + } + #[inline] + pub fn get_logs(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(2), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_logs(&self) -> bool { + !self.reader.get_pointer_field(2).is_null() + } + #[inline] + pub fn get_traces(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(3), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_traces(&self) -> bool { + !self.reader.get_pointer_field(3).is_null() + } } - #[inline] - pub fn get_logs(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(2), ::core::option::Option::None) + + pub struct Builder<'a> { + builder: ::capnp::private::layout::StructBuilder<'a>, } - #[inline] - pub fn has_logs(&self) -> bool { - !self.reader.get_pointer_field(2).is_null() + impl ::capnp::traits::HasStructSize for Builder<'_> { + const STRUCT_SIZE: ::capnp::private::layout::StructSize = + ::capnp::private::layout::StructSize { + data: 0, + pointers: 4, + }; } - #[inline] - pub fn get_traces(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(3), ::core::option::Option::None) + impl ::capnp::traits::HasTypeId for Builder<'_> { + const TYPE_ID: u64 = _private::TYPE_ID; } - #[inline] - pub fn has_traces(&self) -> bool { - !self.reader.get_pointer_field(3).is_null() + impl<'a> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a> { + fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { + Self { builder } + } } - } - pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> } - impl <'a,> ::capnp::traits::HasStructSize for Builder<'a,> { - const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 0, pointers: 4 }; - } - impl <'a,> ::capnp::traits::HasTypeId for Builder<'a,> { - const TYPE_ID: u64 = _private::TYPE_ID; - } - impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,> { - fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { - Self { builder, } + impl<'a> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { + fn from(builder: Builder<'a>) -> Self { + Self::Struct(::capnp::dynamic_struct::Builder::new( + builder.builder, + ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }), + )) + } } - } - impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { - fn from(builder: Builder<'a,>) -> Self { - Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + impl<'a> ::capnp::traits::ImbueMut<'a> for Builder<'a> { + fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { + self.builder + .imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + } } - } - impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,> { - fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { - self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + impl<'a> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a> { + fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { + builder + .init_struct(::STRUCT_SIZE) + .into() + } + fn get_from_pointer( + builder: ::capnp::private::layout::PointerBuilder<'a>, + default: ::core::option::Option<&'a [::capnp::Word]>, + ) -> ::capnp::Result { + ::core::result::Result::Ok( + builder + .get_struct( + ::STRUCT_SIZE, + default, + )? + .into(), + ) + } } - } - impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,> { - fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { - builder.init_struct(::STRUCT_SIZE).into() - } - fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { - ::core::result::Result::Ok(builder.get_struct(::STRUCT_SIZE, default)?.into()) + impl ::capnp::traits::SetterInput for Reader<'_> { + fn set_pointer_builder( + mut pointer: ::capnp::private::layout::PointerBuilder<'_>, + value: Self, + canonicalize: bool, + ) -> ::capnp::Result<()> { + pointer.set_struct(&value.reader, canonicalize) + } } - } - impl <'a,> ::capnp::traits::SetterInput> for Reader<'a,> { - fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) } - } + impl<'a> Builder<'a> { + pub fn into_reader(self) -> Reader<'a> { + self.builder.into_reader().into() + } + pub fn reborrow(&mut self) -> Builder<'_> { + Builder { + builder: self.builder.reborrow(), + } + } + pub fn reborrow_as_reader(&self) -> Reader<'_> { + self.builder.as_reader().into() + } - impl <'a,> Builder<'a,> { - pub fn into_reader(self) -> Reader<'a,> { - self.builder.into_reader().into() + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.builder.as_reader().total_size() + } + #[inline] + pub fn get_blocks(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(0), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_blocks(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(0).set_data(value); + } + #[inline] + pub fn init_blocks(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(0).init_data(size) + } + #[inline] + pub fn has_blocks(&self) -> bool { + !self.builder.is_pointer_field_null(0) + } + #[inline] + pub fn get_transactions(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(1), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_transactions(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(1).set_data(value); + } + #[inline] + pub fn init_transactions(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(1).init_data(size) + } + #[inline] + pub fn has_transactions(&self) -> bool { + !self.builder.is_pointer_field_null(1) + } + #[inline] + pub fn get_logs(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(2), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_logs(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(2).set_data(value); + } + #[inline] + pub fn init_logs(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(2).init_data(size) + } + #[inline] + pub fn has_logs(&self) -> bool { + !self.builder.is_pointer_field_null(2) + } + #[inline] + pub fn get_traces(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(3), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_traces(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(3).set_data(value); + } + #[inline] + pub fn init_traces(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(3).init_data(size) + } + #[inline] + pub fn has_traces(&self) -> bool { + !self.builder.is_pointer_field_null(3) + } } - pub fn reborrow(&mut self) -> Builder<'_,> { - Builder { builder: self.builder.reborrow() } - } - pub fn reborrow_as_reader(&self) -> Reader<'_,> { - self.builder.as_reader().into() - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.as_reader().total_size() - } - #[inline] - pub fn get_blocks(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None) - } - #[inline] - pub fn set_blocks(&mut self, value: ::capnp::data::Reader<'_>) { - self.builder.reborrow().get_pointer_field(0).set_data(value); - } - #[inline] - pub fn init_blocks(self, size: u32) -> ::capnp::data::Builder<'a> { - self.builder.get_pointer_field(0).init_data(size) - } - #[inline] - pub fn has_blocks(&self) -> bool { - !self.builder.is_pointer_field_null(0) - } - #[inline] - pub fn get_transactions(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None) - } - #[inline] - pub fn set_transactions(&mut self, value: ::capnp::data::Reader<'_>) { - self.builder.reborrow().get_pointer_field(1).set_data(value); - } - #[inline] - pub fn init_transactions(self, size: u32) -> ::capnp::data::Builder<'a> { - self.builder.get_pointer_field(1).init_data(size) - } - #[inline] - pub fn has_transactions(&self) -> bool { - !self.builder.is_pointer_field_null(1) - } - #[inline] - pub fn get_logs(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(2), ::core::option::Option::None) - } - #[inline] - pub fn set_logs(&mut self, value: ::capnp::data::Reader<'_>) { - self.builder.reborrow().get_pointer_field(2).set_data(value); - } - #[inline] - pub fn init_logs(self, size: u32) -> ::capnp::data::Builder<'a> { - self.builder.get_pointer_field(2).init_data(size) - } - #[inline] - pub fn has_logs(&self) -> bool { - !self.builder.is_pointer_field_null(2) - } - #[inline] - pub fn get_traces(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(3), ::core::option::Option::None) - } - #[inline] - pub fn set_traces(&mut self, value: ::capnp::data::Reader<'_>) { - self.builder.reborrow().get_pointer_field(3).set_data(value); - } - #[inline] - pub fn init_traces(self, size: u32) -> ::capnp::data::Builder<'a> { - self.builder.get_pointer_field(3).init_data(size) - } - #[inline] - pub fn has_traces(&self) -> bool { - !self.builder.is_pointer_field_null(3) - } - } - - pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { - Self { _typeless: typeless, } - } - } - impl Pipeline { - } - mod _private { - pub static ENCODED_NODE: [::capnp::Word; 82] = [ - ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), - ::capnp::word(49, 157, 62, 151, 169, 39, 204, 137), - ::capnp::word(26, 0, 0, 0, 1, 0, 0, 0), - ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), - ::capnp::word(4, 0, 7, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(22, 0, 0, 0, 138, 0, 0, 0), - ::capnp::word(21, 0, 0, 0, 98, 1, 0, 0), - ::capnp::word(41, 0, 0, 0, 7, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(37, 0, 0, 0, 231, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), - ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), - ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), - ::capnp::word(112, 58, 81, 117, 101, 114, 121, 82), - ::capnp::word(101, 115, 112, 111, 110, 115, 101, 68), - ::capnp::word(97, 116, 97, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), - ::capnp::word(16, 0, 0, 0, 3, 0, 4, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(97, 0, 0, 0, 58, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(92, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(104, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(101, 0, 0, 0, 106, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(100, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(112, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(2, 0, 0, 0, 2, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(109, 0, 0, 0, 42, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(104, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(116, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(3, 0, 0, 0, 3, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(113, 0, 0, 0, 58, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(108, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(120, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(98, 108, 111, 99, 107, 115, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(116, 114, 97, 110, 115, 97, 99, 116), - ::capnp::word(105, 111, 110, 115, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(108, 111, 103, 115, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(116, 114, 97, 99, 101, 115, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ]; - pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { - match index { - 0 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), - 1 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), - 2 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), - 3 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), - _ => panic!("invalid field index {}", index), - } + + pub struct Pipeline { + _typeless: ::capnp::any_pointer::Pipeline, + } + impl ::capnp::capability::FromTypelessPipeline for Pipeline { + fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { + Self { + _typeless: typeless, + } + } + } + impl Pipeline {} + mod _private { + pub static ENCODED_NODE: [::capnp::Word; 82] = [ + ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + ::capnp::word(49, 157, 62, 151, 169, 39, 204, 137), + ::capnp::word(26, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), + ::capnp::word(4, 0, 7, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(22, 0, 0, 0, 138, 0, 0, 0), + ::capnp::word(21, 0, 0, 0, 98, 1, 0, 0), + ::capnp::word(41, 0, 0, 0, 7, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(37, 0, 0, 0, 231, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), + ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), + ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), + ::capnp::word(112, 58, 81, 117, 101, 114, 121, 82), + ::capnp::word(101, 115, 112, 111, 110, 115, 101, 68), + ::capnp::word(97, 116, 97, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), + ::capnp::word(16, 0, 0, 0, 3, 0, 4, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(97, 0, 0, 0, 58, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(92, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(104, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(101, 0, 0, 0, 106, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(100, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(112, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(2, 0, 0, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(109, 0, 0, 0, 42, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(116, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(3, 0, 0, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(113, 0, 0, 0, 58, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(108, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(120, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(98, 108, 111, 99, 107, 115, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 114, 97, 110, 115, 97, 99, 116), + ::capnp::word(105, 111, 110, 115, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(108, 111, 103, 115, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 114, 97, 99, 101, 115, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ]; + pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { + match index { + 0 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 1 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 2 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 3 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + _ => panic!("invalid field index {}", index), + } + } + pub fn get_annotation_types( + child_index: Option, + index: u32, + ) -> ::capnp::introspect::Type { + panic!("invalid annotation indices ({:?}, {}) ", child_index, index) + } + pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = + ::capnp::introspect::RawStructSchema { + encoded_node: &ENCODED_NODE, + nonunion_members: NONUNION_MEMBERS, + members_by_discriminant: MEMBERS_BY_DISCRIMINANT, + members_by_name: MEMBERS_BY_NAME, + }; + pub static NONUNION_MEMBERS: &[u16] = &[0, 1, 2, 3]; + pub static MEMBERS_BY_DISCRIMINANT: &[u16] = &[]; + pub static MEMBERS_BY_NAME: &[u16] = &[0, 2, 3, 1]; + pub const TYPE_ID: u64 = 0x89cc_27a9_973e_9d31; } - pub fn get_annotation_types(child_index: Option, index: u32) -> ::capnp::introspect::Type { - panic!("invalid annotation indices ({:?}, {}) ", child_index, index) - } - pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema { - encoded_node: &ENCODED_NODE, - nonunion_members: NONUNION_MEMBERS, - members_by_discriminant: MEMBERS_BY_DISCRIMINANT, - members_by_name: MEMBERS_BY_NAME, - }; - pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3]; - pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[]; - pub static MEMBERS_BY_NAME : &[u16] = &[0,2,3,1]; - pub const TYPE_ID: u64 = 0x89cc_27a9_973e_9d31; - } } pub mod rollback_guard { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } } - impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } - impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } - impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; } - - pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> } - impl <'a,> ::core::marker::Copy for Reader<'a,> {} - impl <'a,> ::core::clone::Clone for Reader<'a,> { - fn clone(&self) -> Self { *self } - } - - impl <'a,> ::capnp::traits::HasTypeId for Reader<'a,> { - const TYPE_ID: u64 = _private::TYPE_ID; - } - impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,> { - fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { - Self { reader, } + #[derive(Copy, Clone)] + pub struct Owned(()); + impl ::capnp::introspect::Introspect for Owned { + fn introspect() -> ::capnp::introspect::Type { + ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }) + .into() + } + } + impl ::capnp::traits::Owned for Owned { + type Reader<'a> = Reader<'a>; + type Builder<'a> = Builder<'a>; + } + impl ::capnp::traits::OwnedStruct for Owned { + type Reader<'a> = Reader<'a>; + type Builder<'a> = Builder<'a>; + } + impl ::capnp::traits::Pipelined for Owned { + type Pipeline = Pipeline; } - } - impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { - fn from(reader: Reader<'a,>) -> Self { - Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + pub struct Reader<'a> { + reader: ::capnp::private::layout::StructReader<'a>, } - } - - impl <'a,> ::core::fmt::Debug for Reader<'a,> { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> { - core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f) + impl ::core::marker::Copy for Reader<'_> {} + impl ::core::clone::Clone for Reader<'_> { + fn clone(&self) -> Self { + *self + } } - } - impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,> { - fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { - ::core::result::Result::Ok(reader.get_struct(default)?.into()) + impl ::capnp::traits::HasTypeId for Reader<'_> { + const TYPE_ID: u64 = _private::TYPE_ID; } - } - - impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,> { - fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { - self.reader + impl<'a> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a> { + fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { + Self { reader } + } } - } - impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,> { - fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { - self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + impl<'a> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { + fn from(reader: Reader<'a>) -> Self { + Self::Struct(::capnp::dynamic_struct::Reader::new( + reader.reader, + ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }), + )) + } } - } - impl <'a,> Reader<'a,> { - pub fn reborrow(&self) -> Reader<'_,> { - Self { .. *self } + impl ::core::fmt::Debug for Reader<'_> { + fn fmt( + &self, + f: &mut ::core::fmt::Formatter<'_>, + ) -> ::core::result::Result<(), ::core::fmt::Error> { + core::fmt::Debug::fmt( + &::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), + f, + ) + } } - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() + impl<'a> ::capnp::traits::FromPointerReader<'a> for Reader<'a> { + fn get_from_pointer( + reader: &::capnp::private::layout::PointerReader<'a>, + default: ::core::option::Option<&'a [::capnp::Word]>, + ) -> ::capnp::Result { + ::core::result::Result::Ok(reader.get_struct(default)?.into()) + } } - #[inline] - pub fn get_hash(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None) + + impl<'a> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a> { + fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { + self.reader + } } - #[inline] - pub fn has_hash(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() + + impl<'a> ::capnp::traits::Imbue<'a> for Reader<'a> { + fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { + self.reader + .imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + } } - #[inline] - pub fn get_block_number(self) -> u64 { - self.reader.get_data_field::(0) + + impl<'a> Reader<'a> { + pub fn reborrow(&self) -> Reader<'_> { + Self { ..*self } + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.reader.total_size() + } + #[inline] + pub fn get_hash(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(0), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_hash(&self) -> bool { + !self.reader.get_pointer_field(0).is_null() + } + #[inline] + pub fn get_block_number(self) -> u64 { + self.reader.get_data_field::(0) + } + #[inline] + pub fn get_timestamp(self) -> i64 { + self.reader.get_data_field::(1) + } + #[inline] + pub fn get_first_block_number(self) -> u64 { + self.reader.get_data_field::(2) + } + #[inline] + pub fn get_first_parent_hash(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(1), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_first_parent_hash(&self) -> bool { + !self.reader.get_pointer_field(1).is_null() + } } - #[inline] - pub fn get_timestamp(self) -> i64 { - self.reader.get_data_field::(1) + + pub struct Builder<'a> { + builder: ::capnp::private::layout::StructBuilder<'a>, } - #[inline] - pub fn get_first_block_number(self) -> u64 { - self.reader.get_data_field::(2) + impl ::capnp::traits::HasStructSize for Builder<'_> { + const STRUCT_SIZE: ::capnp::private::layout::StructSize = + ::capnp::private::layout::StructSize { + data: 3, + pointers: 2, + }; } - #[inline] - pub fn get_first_parent_hash(self) -> ::capnp::Result<::capnp::data::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None) + impl ::capnp::traits::HasTypeId for Builder<'_> { + const TYPE_ID: u64 = _private::TYPE_ID; } - #[inline] - pub fn has_first_parent_hash(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() + impl<'a> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a> { + fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { + Self { builder } + } } - } - pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> } - impl <'a,> ::capnp::traits::HasStructSize for Builder<'a,> { - const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 3, pointers: 2 }; - } - impl <'a,> ::capnp::traits::HasTypeId for Builder<'a,> { - const TYPE_ID: u64 = _private::TYPE_ID; - } - impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,> { - fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { - Self { builder, } + impl<'a> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { + fn from(builder: Builder<'a>) -> Self { + Self::Struct(::capnp::dynamic_struct::Builder::new( + builder.builder, + ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }), + )) + } } - } - impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { - fn from(builder: Builder<'a,>) -> Self { - Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + impl<'a> ::capnp::traits::ImbueMut<'a> for Builder<'a> { + fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { + self.builder + .imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + } } - } - impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,> { - fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { - self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + impl<'a> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a> { + fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { + builder + .init_struct(::STRUCT_SIZE) + .into() + } + fn get_from_pointer( + builder: ::capnp::private::layout::PointerBuilder<'a>, + default: ::core::option::Option<&'a [::capnp::Word]>, + ) -> ::capnp::Result { + ::core::result::Result::Ok( + builder + .get_struct( + ::STRUCT_SIZE, + default, + )? + .into(), + ) + } } - } - impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,> { - fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { - builder.init_struct(::STRUCT_SIZE).into() + impl ::capnp::traits::SetterInput for Reader<'_> { + fn set_pointer_builder( + mut pointer: ::capnp::private::layout::PointerBuilder<'_>, + value: Self, + canonicalize: bool, + ) -> ::capnp::Result<()> { + pointer.set_struct(&value.reader, canonicalize) + } } - fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { - ::core::result::Result::Ok(builder.get_struct(::STRUCT_SIZE, default)?.into()) - } - } - impl <'a,> ::capnp::traits::SetterInput> for Reader<'a,> { - fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) } - } + impl<'a> Builder<'a> { + pub fn into_reader(self) -> Reader<'a> { + self.builder.into_reader().into() + } + pub fn reborrow(&mut self) -> Builder<'_> { + Builder { + builder: self.builder.reborrow(), + } + } + pub fn reborrow_as_reader(&self) -> Reader<'_> { + self.builder.as_reader().into() + } - impl <'a,> Builder<'a,> { - pub fn into_reader(self) -> Reader<'a,> { - self.builder.into_reader().into() + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.builder.as_reader().total_size() + } + #[inline] + pub fn get_hash(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(0), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_hash(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(0).set_data(value); + } + #[inline] + pub fn init_hash(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(0).init_data(size) + } + #[inline] + pub fn has_hash(&self) -> bool { + !self.builder.is_pointer_field_null(0) + } + #[inline] + pub fn get_block_number(self) -> u64 { + self.builder.get_data_field::(0) + } + #[inline] + pub fn set_block_number(&mut self, value: u64) { + self.builder.set_data_field::(0, value); + } + #[inline] + pub fn get_timestamp(self) -> i64 { + self.builder.get_data_field::(1) + } + #[inline] + pub fn set_timestamp(&mut self, value: i64) { + self.builder.set_data_field::(1, value); + } + #[inline] + pub fn get_first_block_number(self) -> u64 { + self.builder.get_data_field::(2) + } + #[inline] + pub fn set_first_block_number(&mut self, value: u64) { + self.builder.set_data_field::(2, value); + } + #[inline] + pub fn get_first_parent_hash(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(1), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_first_parent_hash(&mut self, value: ::capnp::data::Reader<'_>) { + self.builder.reborrow().get_pointer_field(1).set_data(value); + } + #[inline] + pub fn init_first_parent_hash(self, size: u32) -> ::capnp::data::Builder<'a> { + self.builder.get_pointer_field(1).init_data(size) + } + #[inline] + pub fn has_first_parent_hash(&self) -> bool { + !self.builder.is_pointer_field_null(1) + } } - pub fn reborrow(&mut self) -> Builder<'_,> { - Builder { builder: self.builder.reborrow() } - } - pub fn reborrow_as_reader(&self) -> Reader<'_,> { - self.builder.as_reader().into() - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.as_reader().total_size() - } - #[inline] - pub fn get_hash(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None) - } - #[inline] - pub fn set_hash(&mut self, value: ::capnp::data::Reader<'_>) { - self.builder.reborrow().get_pointer_field(0).set_data(value); - } - #[inline] - pub fn init_hash(self, size: u32) -> ::capnp::data::Builder<'a> { - self.builder.get_pointer_field(0).init_data(size) - } - #[inline] - pub fn has_hash(&self) -> bool { - !self.builder.is_pointer_field_null(0) - } - #[inline] - pub fn get_block_number(self) -> u64 { - self.builder.get_data_field::(0) - } - #[inline] - pub fn set_block_number(&mut self, value: u64) { - self.builder.set_data_field::(0, value); - } - #[inline] - pub fn get_timestamp(self) -> i64 { - self.builder.get_data_field::(1) - } - #[inline] - pub fn set_timestamp(&mut self, value: i64) { - self.builder.set_data_field::(1, value); - } - #[inline] - pub fn get_first_block_number(self) -> u64 { - self.builder.get_data_field::(2) - } - #[inline] - pub fn set_first_block_number(&mut self, value: u64) { - self.builder.set_data_field::(2, value); - } - #[inline] - pub fn get_first_parent_hash(self) -> ::capnp::Result<::capnp::data::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None) - } - #[inline] - pub fn set_first_parent_hash(&mut self, value: ::capnp::data::Reader<'_>) { - self.builder.reborrow().get_pointer_field(1).set_data(value); - } - #[inline] - pub fn init_first_parent_hash(self, size: u32) -> ::capnp::data::Builder<'a> { - self.builder.get_pointer_field(1).init_data(size) - } - #[inline] - pub fn has_first_parent_hash(&self) -> bool { - !self.builder.is_pointer_field_null(1) - } - } - - pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { - Self { _typeless: typeless, } - } - } - impl Pipeline { - } - mod _private { - pub static ENCODED_NODE: [::capnp::Word; 100] = [ - ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), - ::capnp::word(75, 175, 253, 87, 239, 86, 125, 149), - ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), - ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), - ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(140, 0, 0, 0, 43, 1, 0, 0), - ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), - ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(33, 0, 0, 0, 31, 1, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), - ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), - ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), - ::capnp::word(112, 58, 82, 111, 108, 108, 98, 97), - ::capnp::word(99, 107, 71, 117, 97, 114, 100, 0), - ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), - ::capnp::word(20, 0, 0, 0, 3, 0, 4, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(125, 0, 0, 0, 42, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(120, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(132, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(129, 0, 0, 0, 98, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(128, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(140, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(2, 0, 0, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(137, 0, 0, 0, 82, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(136, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(148, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(3, 0, 0, 0, 2, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(145, 0, 0, 0, 138, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(148, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(160, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(4, 0, 0, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(157, 0, 0, 0, 130, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(156, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(168, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(104, 97, 115, 104, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(98, 108, 111, 99, 107, 78, 117, 109), - ::capnp::word(98, 101, 114, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(116, 105, 109, 101, 115, 116, 97, 109), - ::capnp::word(112, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(102, 105, 114, 115, 116, 66, 108, 111), - ::capnp::word(99, 107, 78, 117, 109, 98, 101, 114), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(102, 105, 114, 115, 116, 80, 97, 114), - ::capnp::word(101, 110, 116, 72, 97, 115, 104, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ]; - pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { - match index { - 0 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), - 1 => ::introspect(), - 2 => ::introspect(), - 3 => ::introspect(), - 4 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), - _ => panic!("invalid field index {}", index), - } + + pub struct Pipeline { + _typeless: ::capnp::any_pointer::Pipeline, + } + impl ::capnp::capability::FromTypelessPipeline for Pipeline { + fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { + Self { + _typeless: typeless, + } + } + } + impl Pipeline {} + mod _private { + pub static ENCODED_NODE: [::capnp::Word; 100] = [ + ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + ::capnp::word(75, 175, 253, 87, 239, 86, 125, 149), + ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), + ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), + ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(140, 0, 0, 0, 43, 1, 0, 0), + ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), + ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(33, 0, 0, 0, 31, 1, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), + ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), + ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), + ::capnp::word(112, 58, 82, 111, 108, 108, 98, 97), + ::capnp::word(99, 107, 71, 117, 97, 114, 100, 0), + ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), + ::capnp::word(20, 0, 0, 0, 3, 0, 4, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(125, 0, 0, 0, 42, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(120, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(132, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(1, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(129, 0, 0, 0, 98, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(128, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(140, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(2, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(137, 0, 0, 0, 82, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(136, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(148, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(3, 0, 0, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(145, 0, 0, 0, 138, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(148, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(160, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(4, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(157, 0, 0, 0, 130, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(156, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(168, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(104, 97, 115, 104, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(98, 108, 111, 99, 107, 78, 117, 109), + ::capnp::word(98, 101, 114, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 105, 109, 101, 115, 116, 97, 109), + ::capnp::word(112, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(102, 105, 114, 115, 116, 66, 108, 111), + ::capnp::word(99, 107, 78, 117, 109, 98, 101, 114), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(102, 105, 114, 115, 116, 80, 97, 114), + ::capnp::word(101, 110, 116, 72, 97, 115, 104, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(13, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ]; + pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { + match index { + 0 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + 1 => ::introspect(), + 2 => ::introspect(), + 3 => ::introspect(), + 4 => <::capnp::data::Owned as ::capnp::introspect::Introspect>::introspect(), + _ => panic!("invalid field index {}", index), + } + } + pub fn get_annotation_types( + child_index: Option, + index: u32, + ) -> ::capnp::introspect::Type { + panic!("invalid annotation indices ({:?}, {}) ", child_index, index) + } + pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = + ::capnp::introspect::RawStructSchema { + encoded_node: &ENCODED_NODE, + nonunion_members: NONUNION_MEMBERS, + members_by_discriminant: MEMBERS_BY_DISCRIMINANT, + members_by_name: MEMBERS_BY_NAME, + }; + pub static NONUNION_MEMBERS: &[u16] = &[0, 1, 2, 3, 4]; + pub static MEMBERS_BY_DISCRIMINANT: &[u16] = &[]; + pub static MEMBERS_BY_NAME: &[u16] = &[1, 3, 4, 0, 2]; + pub const TYPE_ID: u64 = 0x957d_56ef_57fd_af4b; } - pub fn get_annotation_types(child_index: Option, index: u32) -> ::capnp::introspect::Type { - panic!("invalid annotation indices ({:?}, {}) ", child_index, index) - } - pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema { - encoded_node: &ENCODED_NODE, - nonunion_members: NONUNION_MEMBERS, - members_by_discriminant: MEMBERS_BY_DISCRIMINANT, - members_by_name: MEMBERS_BY_NAME, - }; - pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3,4]; - pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[]; - pub static MEMBERS_BY_NAME : &[u16] = &[1,3,4,0,2]; - pub const TYPE_ID: u64 = 0x957d_56ef_57fd_af4b; - } } pub mod query_response { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types, annotation_types: _private::get_annotation_types }).into() } } - impl ::capnp::traits::Owned for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } - impl ::capnp::traits::OwnedStruct for Owned { type Reader<'a> = Reader<'a>; type Builder<'a> = Builder<'a>; } - impl ::capnp::traits::Pipelined for Owned { type Pipeline = Pipeline; } - - pub struct Reader<'a> { reader: ::capnp::private::layout::StructReader<'a> } - impl <'a,> ::core::marker::Copy for Reader<'a,> {} - impl <'a,> ::core::clone::Clone for Reader<'a,> { - fn clone(&self) -> Self { *self } - } - - impl <'a,> ::capnp::traits::HasTypeId for Reader<'a,> { - const TYPE_ID: u64 = _private::TYPE_ID; - } - impl <'a,> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a,> { - fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { - Self { reader, } + #[derive(Copy, Clone)] + pub struct Owned(()); + impl ::capnp::introspect::Introspect for Owned { + fn introspect() -> ::capnp::introspect::Type { + ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }) + .into() + } + } + impl ::capnp::traits::Owned for Owned { + type Reader<'a> = Reader<'a>; + type Builder<'a> = Builder<'a>; + } + impl ::capnp::traits::OwnedStruct for Owned { + type Reader<'a> = Reader<'a>; + type Builder<'a> = Builder<'a>; + } + impl ::capnp::traits::Pipelined for Owned { + type Pipeline = Pipeline; } - } - impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { - fn from(reader: Reader<'a,>) -> Self { - Self::Struct(::capnp::dynamic_struct::Reader::new(reader.reader, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + pub struct Reader<'a> { + reader: ::capnp::private::layout::StructReader<'a>, } - } - - impl <'a,> ::core::fmt::Debug for Reader<'a,> { - fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::result::Result<(), ::core::fmt::Error> { - core::fmt::Debug::fmt(&::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), f) + impl ::core::marker::Copy for Reader<'_> {} + impl ::core::clone::Clone for Reader<'_> { + fn clone(&self) -> Self { + *self + } } - } - impl <'a,> ::capnp::traits::FromPointerReader<'a> for Reader<'a,> { - fn get_from_pointer(reader: &::capnp::private::layout::PointerReader<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { - ::core::result::Result::Ok(reader.get_struct(default)?.into()) + impl ::capnp::traits::HasTypeId for Reader<'_> { + const TYPE_ID: u64 = _private::TYPE_ID; } - } - - impl <'a,> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a,> { - fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { - self.reader + impl<'a> ::core::convert::From<::capnp::private::layout::StructReader<'a>> for Reader<'a> { + fn from(reader: ::capnp::private::layout::StructReader<'a>) -> Self { + Self { reader } + } } - } - impl <'a,> ::capnp::traits::Imbue<'a> for Reader<'a,> { - fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { - self.reader.imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + impl<'a> ::core::convert::From> for ::capnp::dynamic_value::Reader<'a> { + fn from(reader: Reader<'a>) -> Self { + Self::Struct(::capnp::dynamic_struct::Reader::new( + reader.reader, + ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }), + )) + } } - } - impl <'a,> Reader<'a,> { - pub fn reborrow(&self) -> Reader<'_,> { - Self { .. *self } + impl ::core::fmt::Debug for Reader<'_> { + fn fmt( + &self, + f: &mut ::core::fmt::Formatter<'_>, + ) -> ::core::result::Result<(), ::core::fmt::Error> { + core::fmt::Debug::fmt( + &::core::convert::Into::<::capnp::dynamic_value::Reader<'_>>::into(*self), + f, + ) + } } - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() + impl<'a> ::capnp::traits::FromPointerReader<'a> for Reader<'a> { + fn get_from_pointer( + reader: &::capnp::private::layout::PointerReader<'a>, + default: ::core::option::Option<&'a [::capnp::Word]>, + ) -> ::capnp::Result { + ::core::result::Result::Ok(reader.get_struct(default)?.into()) + } } - #[inline] - pub fn get_archive_height(self) -> i64 { - self.reader.get_data_field::(0) + + impl<'a> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a> { + fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { + self.reader + } } - #[inline] - pub fn get_next_block(self) -> u64 { - self.reader.get_data_field::(1) + + impl<'a> ::capnp::traits::Imbue<'a> for Reader<'a> { + fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { + self.reader + .imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) + } } - #[inline] - pub fn get_total_execution_time(self) -> u64 { - self.reader.get_data_field::(2) + + impl<'a> Reader<'a> { + pub fn reborrow(&self) -> Reader<'_> { + Self { ..*self } + } + + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.reader.total_size() + } + #[inline] + pub fn get_archive_height(self) -> i64 { + self.reader.get_data_field::(0) + } + #[inline] + pub fn get_next_block(self) -> u64 { + self.reader.get_data_field::(1) + } + #[inline] + pub fn get_total_execution_time(self) -> u64 { + self.reader.get_data_field::(2) + } + #[inline] + pub fn get_data( + self, + ) -> ::capnp::Result> + { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(0), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_data(&self) -> bool { + !self.reader.get_pointer_field(0).is_null() + } + #[inline] + pub fn get_rollback_guard( + self, + ) -> ::capnp::Result> { + ::capnp::traits::FromPointerReader::get_from_pointer( + &self.reader.get_pointer_field(1), + ::core::option::Option::None, + ) + } + #[inline] + pub fn has_rollback_guard(&self) -> bool { + !self.reader.get_pointer_field(1).is_null() + } } - #[inline] - pub fn get_data(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(0), ::core::option::Option::None) + + pub struct Builder<'a> { + builder: ::capnp::private::layout::StructBuilder<'a>, } - #[inline] - pub fn has_data(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() + impl ::capnp::traits::HasStructSize for Builder<'_> { + const STRUCT_SIZE: ::capnp::private::layout::StructSize = + ::capnp::private::layout::StructSize { + data: 3, + pointers: 2, + }; } - #[inline] - pub fn get_rollback_guard(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer(&self.reader.get_pointer_field(1), ::core::option::Option::None) + impl ::capnp::traits::HasTypeId for Builder<'_> { + const TYPE_ID: u64 = _private::TYPE_ID; } - #[inline] - pub fn has_rollback_guard(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() + impl<'a> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a> { + fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { + Self { builder } + } } - } - pub struct Builder<'a> { builder: ::capnp::private::layout::StructBuilder<'a> } - impl <'a,> ::capnp::traits::HasStructSize for Builder<'a,> { - const STRUCT_SIZE: ::capnp::private::layout::StructSize = ::capnp::private::layout::StructSize { data: 3, pointers: 2 }; - } - impl <'a,> ::capnp::traits::HasTypeId for Builder<'a,> { - const TYPE_ID: u64 = _private::TYPE_ID; - } - impl <'a,> ::core::convert::From<::capnp::private::layout::StructBuilder<'a>> for Builder<'a,> { - fn from(builder: ::capnp::private::layout::StructBuilder<'a>) -> Self { - Self { builder, } + impl<'a> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { + fn from(builder: Builder<'a>) -> Self { + Self::Struct(::capnp::dynamic_struct::Builder::new( + builder.builder, + ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { + generic: &_private::RAW_SCHEMA, + field_types: _private::get_field_types, + annotation_types: _private::get_annotation_types, + }), + )) + } } - } - impl <'a,> ::core::convert::From> for ::capnp::dynamic_value::Builder<'a> { - fn from(builder: Builder<'a,>) -> Self { - Self::Struct(::capnp::dynamic_struct::Builder::new(builder.builder, ::capnp::schema::StructSchema::new(::capnp::introspect::RawBrandedStructSchema { generic: &_private::RAW_SCHEMA, field_types: _private::get_field_types::<>, annotation_types: _private::get_annotation_types::<>}))) + impl<'a> ::capnp::traits::ImbueMut<'a> for Builder<'a> { + fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { + self.builder + .imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + } } - } - impl <'a,> ::capnp::traits::ImbueMut<'a> for Builder<'a,> { - fn imbue_mut(&mut self, cap_table: &'a mut ::capnp::private::layout::CapTable) { - self.builder.imbue(::capnp::private::layout::CapTableBuilder::Plain(cap_table)) + impl<'a> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a> { + fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { + builder + .init_struct(::STRUCT_SIZE) + .into() + } + fn get_from_pointer( + builder: ::capnp::private::layout::PointerBuilder<'a>, + default: ::core::option::Option<&'a [::capnp::Word]>, + ) -> ::capnp::Result { + ::core::result::Result::Ok( + builder + .get_struct( + ::STRUCT_SIZE, + default, + )? + .into(), + ) + } } - } - impl <'a,> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a,> { - fn init_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, _size: u32) -> Self { - builder.init_struct(::STRUCT_SIZE).into() - } - fn get_from_pointer(builder: ::capnp::private::layout::PointerBuilder<'a>, default: ::core::option::Option<&'a [::capnp::Word]>) -> ::capnp::Result { - ::core::result::Result::Ok(builder.get_struct(::STRUCT_SIZE, default)?.into()) + impl ::capnp::traits::SetterInput for Reader<'_> { + fn set_pointer_builder( + mut pointer: ::capnp::private::layout::PointerBuilder<'_>, + value: Self, + canonicalize: bool, + ) -> ::capnp::Result<()> { + pointer.set_struct(&value.reader, canonicalize) + } } - } - impl <'a,> ::capnp::traits::SetterInput> for Reader<'a,> { - fn set_pointer_builder(mut pointer: ::capnp::private::layout::PointerBuilder<'_>, value: Self, canonicalize: bool) -> ::capnp::Result<()> { pointer.set_struct(&value.reader, canonicalize) } - } + impl<'a> Builder<'a> { + pub fn into_reader(self) -> Reader<'a> { + self.builder.into_reader().into() + } + pub fn reborrow(&mut self) -> Builder<'_> { + Builder { + builder: self.builder.reborrow(), + } + } + pub fn reborrow_as_reader(&self) -> Reader<'_> { + self.builder.as_reader().into() + } - impl <'a,> Builder<'a,> { - pub fn into_reader(self) -> Reader<'a,> { - self.builder.into_reader().into() - } - pub fn reborrow(&mut self) -> Builder<'_,> { - Builder { builder: self.builder.reborrow() } + pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { + self.builder.as_reader().total_size() + } + #[inline] + pub fn get_archive_height(self) -> i64 { + self.builder.get_data_field::(0) + } + #[inline] + pub fn set_archive_height(&mut self, value: i64) { + self.builder.set_data_field::(0, value); + } + #[inline] + pub fn get_next_block(self) -> u64 { + self.builder.get_data_field::(1) + } + #[inline] + pub fn set_next_block(&mut self, value: u64) { + self.builder.set_data_field::(1, value); + } + #[inline] + pub fn get_total_execution_time(self) -> u64 { + self.builder.get_data_field::(2) + } + #[inline] + pub fn set_total_execution_time(&mut self, value: u64) { + self.builder.set_data_field::(2, value); + } + #[inline] + pub fn get_data( + self, + ) -> ::capnp::Result> + { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(0), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_data( + &mut self, + value: crate::hypersync_net_types_capnp::query_response_data::Reader<'_>, + ) -> ::capnp::Result<()> { + ::capnp::traits::SetterInput::set_pointer_builder( + self.builder.reborrow().get_pointer_field(0), + value, + false, + ) + } + #[inline] + pub fn init_data( + self, + ) -> crate::hypersync_net_types_capnp::query_response_data::Builder<'a> { + ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) + } + #[inline] + pub fn has_data(&self) -> bool { + !self.builder.is_pointer_field_null(0) + } + #[inline] + pub fn get_rollback_guard( + self, + ) -> ::capnp::Result> + { + ::capnp::traits::FromPointerBuilder::get_from_pointer( + self.builder.get_pointer_field(1), + ::core::option::Option::None, + ) + } + #[inline] + pub fn set_rollback_guard( + &mut self, + value: crate::hypersync_net_types_capnp::rollback_guard::Reader<'_>, + ) -> ::capnp::Result<()> { + ::capnp::traits::SetterInput::set_pointer_builder( + self.builder.reborrow().get_pointer_field(1), + value, + false, + ) + } + #[inline] + pub fn init_rollback_guard( + self, + ) -> crate::hypersync_net_types_capnp::rollback_guard::Builder<'a> { + ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), 0) + } + #[inline] + pub fn has_rollback_guard(&self) -> bool { + !self.builder.is_pointer_field_null(1) + } } - pub fn reborrow_as_reader(&self) -> Reader<'_,> { - self.builder.as_reader().into() - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.as_reader().total_size() - } - #[inline] - pub fn get_archive_height(self) -> i64 { - self.builder.get_data_field::(0) - } - #[inline] - pub fn set_archive_height(&mut self, value: i64) { - self.builder.set_data_field::(0, value); - } - #[inline] - pub fn get_next_block(self) -> u64 { - self.builder.get_data_field::(1) - } - #[inline] - pub fn set_next_block(&mut self, value: u64) { - self.builder.set_data_field::(1, value); - } - #[inline] - pub fn get_total_execution_time(self) -> u64 { - self.builder.get_data_field::(2) - } - #[inline] - pub fn set_total_execution_time(&mut self, value: u64) { - self.builder.set_data_field::(2, value); - } - #[inline] - pub fn get_data(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(0), ::core::option::Option::None) - } - #[inline] - pub fn set_data(&mut self, value: crate::hypersync_net_types_capnp::query_response_data::Reader<'_>) -> ::capnp::Result<()> { - ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(0), value, false) - } - #[inline] - pub fn init_data(self, ) -> crate::hypersync_net_types_capnp::query_response_data::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_data(&self) -> bool { - !self.builder.is_pointer_field_null(0) - } - #[inline] - pub fn get_rollback_guard(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer(self.builder.get_pointer_field(1), ::core::option::Option::None) - } - #[inline] - pub fn set_rollback_guard(&mut self, value: crate::hypersync_net_types_capnp::rollback_guard::Reader<'_>) -> ::capnp::Result<()> { - ::capnp::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field(1), value, false) - } - #[inline] - pub fn init_rollback_guard(self, ) -> crate::hypersync_net_types_capnp::rollback_guard::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), 0) - } - #[inline] - pub fn has_rollback_guard(&self) -> bool { - !self.builder.is_pointer_field_null(1) - } - } - - pub struct Pipeline { _typeless: ::capnp::any_pointer::Pipeline } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { - Self { _typeless: typeless, } - } - } - impl Pipeline { - pub fn get_data(&self) -> crate::hypersync_net_types_capnp::query_response_data::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0)) - } - pub fn get_rollback_guard(&self) -> crate::hypersync_net_types_capnp::rollback_guard::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1)) - } - } - mod _private { - pub static ENCODED_NODE: [::capnp::Word; 100] = [ - ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), - ::capnp::word(226, 9, 54, 243, 16, 76, 106, 205), - ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), - ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), - ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(45, 1, 0, 0, 228, 1, 0, 0), - ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), - ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(33, 0, 0, 0, 31, 1, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), - ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), - ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), - ::capnp::word(112, 58, 81, 117, 101, 114, 121, 82), - ::capnp::word(101, 115, 112, 111, 110, 115, 101, 0), - ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), - ::capnp::word(20, 0, 0, 0, 3, 0, 4, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(125, 0, 0, 0, 114, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(124, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(136, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(133, 0, 0, 0, 82, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(132, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(144, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(2, 0, 0, 0, 2, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(141, 0, 0, 0, 154, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(144, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(156, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(3, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(153, 0, 0, 0, 42, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(148, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(160, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(4, 0, 0, 0, 1, 0, 0, 0), - ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(157, 0, 0, 0, 114, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(156, 0, 0, 0, 3, 0, 1, 0), - ::capnp::word(168, 0, 0, 0, 2, 0, 1, 0), - ::capnp::word(97, 114, 99, 104, 105, 118, 101, 72), - ::capnp::word(101, 105, 103, 104, 116, 0, 0, 0), - ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(110, 101, 120, 116, 66, 108, 111, 99), - ::capnp::word(107, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(116, 111, 116, 97, 108, 69, 120, 101), - ::capnp::word(99, 117, 116, 105, 111, 110, 84, 105), - ::capnp::word(109, 101, 0, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(100, 97, 116, 97, 0, 0, 0, 0), - ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(49, 157, 62, 151, 169, 39, 204, 137), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(114, 111, 108, 108, 98, 97, 99, 107), - ::capnp::word(71, 117, 97, 114, 100, 0, 0, 0), - ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(75, 175, 253, 87, 239, 86, 125, 149), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ]; - pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { - match index { + + pub struct Pipeline { + _typeless: ::capnp::any_pointer::Pipeline, + } + impl ::capnp::capability::FromTypelessPipeline for Pipeline { + fn new(typeless: ::capnp::any_pointer::Pipeline) -> Self { + Self { + _typeless: typeless, + } + } + } + impl Pipeline { + pub fn get_data(&self) -> crate::hypersync_net_types_capnp::query_response_data::Pipeline { + ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0)) + } + pub fn get_rollback_guard( + &self, + ) -> crate::hypersync_net_types_capnp::rollback_guard::Pipeline { + ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1)) + } + } + mod _private { + pub static ENCODED_NODE: [::capnp::Word; 100] = [ + ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + ::capnp::word(226, 9, 54, 243, 16, 76, 106, 205), + ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), + ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), + ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(45, 1, 0, 0, 228, 1, 0, 0), + ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), + ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(33, 0, 0, 0, 31, 1, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(104, 121, 112, 101, 114, 115, 121, 110), + ::capnp::word(99, 95, 110, 101, 116, 95, 116, 121), + ::capnp::word(112, 101, 115, 46, 99, 97, 112, 110), + ::capnp::word(112, 58, 81, 117, 101, 114, 121, 82), + ::capnp::word(101, 115, 112, 111, 110, 115, 101, 0), + ::capnp::word(0, 0, 0, 0, 1, 0, 1, 0), + ::capnp::word(20, 0, 0, 0, 3, 0, 4, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(125, 0, 0, 0, 114, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(124, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(136, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(1, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(133, 0, 0, 0, 82, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(132, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(144, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(2, 0, 0, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 2, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(141, 0, 0, 0, 154, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(144, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(156, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(3, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 3, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(153, 0, 0, 0, 42, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(148, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(160, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(4, 0, 0, 0, 1, 0, 0, 0), + ::capnp::word(0, 0, 1, 0, 4, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(157, 0, 0, 0, 114, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(156, 0, 0, 0, 3, 0, 1, 0), + ::capnp::word(168, 0, 0, 0, 2, 0, 1, 0), + ::capnp::word(97, 114, 99, 104, 105, 118, 101, 72), + ::capnp::word(101, 105, 103, 104, 116, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(5, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(110, 101, 120, 116, 66, 108, 111, 99), + ::capnp::word(107, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(116, 111, 116, 97, 108, 69, 120, 101), + ::capnp::word(99, 117, 116, 105, 111, 110, 84, 105), + ::capnp::word(109, 101, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(9, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(100, 97, 116, 97, 0, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(49, 157, 62, 151, 169, 39, 204, 137), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(114, 111, 108, 108, 98, 97, 99, 107), + ::capnp::word(71, 117, 97, 114, 100, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(75, 175, 253, 87, 239, 86, 125, 149), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(16, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), + ]; + pub fn get_field_types(index: u16) -> ::capnp::introspect::Type { + match index { 0 => ::introspect(), 1 => ::introspect(), 2 => ::introspect(), @@ -999,19 +1312,23 @@ pub mod query_response { 4 => ::introspect(), _ => panic!("invalid field index {}", index), } + } + pub fn get_annotation_types( + child_index: Option, + index: u32, + ) -> ::capnp::introspect::Type { + panic!("invalid annotation indices ({:?}, {}) ", child_index, index) + } + pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = + ::capnp::introspect::RawStructSchema { + encoded_node: &ENCODED_NODE, + nonunion_members: NONUNION_MEMBERS, + members_by_discriminant: MEMBERS_BY_DISCRIMINANT, + members_by_name: MEMBERS_BY_NAME, + }; + pub static NONUNION_MEMBERS: &[u16] = &[0, 1, 2, 3, 4]; + pub static MEMBERS_BY_DISCRIMINANT: &[u16] = &[]; + pub static MEMBERS_BY_NAME: &[u16] = &[0, 3, 1, 4, 2]; + pub const TYPE_ID: u64 = 0xcd6a_4c10_f336_09e2; } - pub fn get_annotation_types(child_index: Option, index: u32) -> ::capnp::introspect::Type { - panic!("invalid annotation indices ({:?}, {}) ", child_index, index) - } - pub static RAW_SCHEMA: ::capnp::introspect::RawStructSchema = ::capnp::introspect::RawStructSchema { - encoded_node: &ENCODED_NODE, - nonunion_members: NONUNION_MEMBERS, - members_by_discriminant: MEMBERS_BY_DISCRIMINANT, - members_by_name: MEMBERS_BY_NAME, - }; - pub static NONUNION_MEMBERS : &[u16] = &[0,1,2,3,4]; - pub static MEMBERS_BY_DISCRIMINANT : &[u16] = &[]; - pub static MEMBERS_BY_NAME : &[u16] = &[0,3,1,4,2]; - pub const TYPE_ID: u64 = 0xcd6a_4c10_f336_09e2; - } } From 97d7b433ffdd3d7fac5fc6b8276f7efdbbe94fdf Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 18:39:27 +0200 Subject: [PATCH 04/12] Fix broken tests from merge --- hypersync-format/src/types/fixed_size_data.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hypersync-format/src/types/fixed_size_data.rs b/hypersync-format/src/types/fixed_size_data.rs index fc94541..d91be30 100644 --- a/hypersync-format/src/types/fixed_size_data.rs +++ b/hypersync-format/src/types/fixed_size_data.rs @@ -191,6 +191,8 @@ impl fmt::Debug for FixedSizeData { #[cfg(test)] mod tests { type FixedSizeData = super::FixedSizeData<4>; + type FSD4 = FixedSizeData; + use derive_more::FromStr; use hex_literal::hex; use serde_test::{assert_tokens, Token}; From 3001eeda9619706b6d990274604be4b9e6bbed75 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 18:45:15 +0200 Subject: [PATCH 05/12] Fix clippy warnings --- hypersync-format/src/types/bloom_filter_wrapper.rs | 2 +- hypersync-format/src/types/data.rs | 2 +- hypersync-format/src/types/fixed_size_data.rs | 2 +- hypersync-format/src/types/quantity.rs | 2 +- hypersync-format/src/types/transaction_status.rs | 2 +- hypersync-format/src/types/transaction_type.rs | 2 +- hypersync-format/src/types/uint.rs | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hypersync-format/src/types/bloom_filter_wrapper.rs b/hypersync-format/src/types/bloom_filter_wrapper.rs index 7c6219f..fcb8e37 100644 --- a/hypersync-format/src/types/bloom_filter_wrapper.rs +++ b/hypersync-format/src/types/bloom_filter_wrapper.rs @@ -72,7 +72,7 @@ impl<'de> Deserialize<'de> for FilterWrapper { { struct FilterWrapperVisitor; - impl<'de> Visitor<'de> for FilterWrapperVisitor { + impl Visitor<'_> for FilterWrapperVisitor { type Value = FilterWrapper; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/hypersync-format/src/types/data.rs b/hypersync-format/src/types/data.rs index dc63b7f..c2ce458 100644 --- a/hypersync-format/src/types/data.rs +++ b/hypersync-format/src/types/data.rs @@ -38,7 +38,7 @@ impl From<[u8; N]> for Data { struct DataVisitor; -impl<'de> Visitor<'de> for DataVisitor { +impl Visitor<'_> for DataVisitor { type Value = Data; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/hypersync-format/src/types/fixed_size_data.rs b/hypersync-format/src/types/fixed_size_data.rs index d91be30..8e16281 100644 --- a/hypersync-format/src/types/fixed_size_data.rs +++ b/hypersync-format/src/types/fixed_size_data.rs @@ -135,7 +135,7 @@ impl fmt::Display for FixedSizeData { struct FixedSizeDataVisitor; -impl<'de, const N: usize> Visitor<'de> for FixedSizeDataVisitor { +impl Visitor<'_> for FixedSizeDataVisitor { type Value = FixedSizeData; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/hypersync-format/src/types/quantity.rs b/hypersync-format/src/types/quantity.rs index 2a5b8fd..ee54a86 100644 --- a/hypersync-format/src/types/quantity.rs +++ b/hypersync-format/src/types/quantity.rs @@ -91,7 +91,7 @@ impl From<[u8; N]> for Quantity { struct QuantityVisitor; -impl<'de> Visitor<'de> for QuantityVisitor { +impl Visitor<'_> for QuantityVisitor { type Value = Quantity; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/hypersync-format/src/types/transaction_status.rs b/hypersync-format/src/types/transaction_status.rs index 4363175..cb13508 100644 --- a/hypersync-format/src/types/transaction_status.rs +++ b/hypersync-format/src/types/transaction_status.rs @@ -53,7 +53,7 @@ impl TransactionStatus { struct TransactionStatusVisitor; -impl<'de> Visitor<'de> for TransactionStatusVisitor { +impl Visitor<'_> for TransactionStatusVisitor { type Value = TransactionStatus; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/hypersync-format/src/types/transaction_type.rs b/hypersync-format/src/types/transaction_type.rs index 6e8001e..0627e6b 100644 --- a/hypersync-format/src/types/transaction_type.rs +++ b/hypersync-format/src/types/transaction_type.rs @@ -25,7 +25,7 @@ pub struct TransactionType(pub u8); struct TransactionTypeVisitor; -impl<'de> Visitor<'de> for TransactionTypeVisitor { +impl Visitor<'_> for TransactionTypeVisitor { type Value = TransactionType; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/hypersync-format/src/types/uint.rs b/hypersync-format/src/types/uint.rs index 1d69bc0..88c91c6 100644 --- a/hypersync-format/src/types/uint.rs +++ b/hypersync-format/src/types/uint.rs @@ -59,7 +59,7 @@ impl From for ethabi::ethereum_types::U256 { struct UIntVisitor; -impl<'de> Visitor<'de> for UIntVisitor { +impl Visitor<'_> for UIntVisitor { type Value = UInt; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { From 4b69bcfc4c151bba960e5b18cb79e86bc271a212 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 18:46:04 +0200 Subject: [PATCH 06/12] Remove ci capnproto deps --- .github/workflows/ci.yaml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1c33c20..d890c20 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -37,10 +37,6 @@ jobs: steps: - uses: actions/checkout@v3 - uses: Swatinem/rust-cache@v2 - - name: Install Dependencies - run: | - export DEBIAN_FRONTEND=noninteractive - sudo apt-get install -y capnproto libcapnp-dev - name: Build run: cargo build --release - name: Test @@ -51,10 +47,6 @@ jobs: steps: - uses: actions/checkout@v3 - uses: Swatinem/rust-cache@v2 - - name: Install Dependencies - run: | - export DEBIAN_FRONTEND=noninteractive - sudo apt-get install -y capnproto libcapnp-dev - name: Rustfmt run: cargo fmt --check - name: Clippy From 60f63c23c5e70998477b58684917653a601259c4 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 18:53:27 +0200 Subject: [PATCH 07/12] Fix ci --- .github/workflows/ci.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d890c20..9ffa098 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,12 +20,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + # selecting a toolchain either by action or manual `rustup` calls should happen + # before the plugin, as the cache uses the current rustc version as its cache key + - run: rustup toolchain install stable - uses: Swatinem/rust-cache@v2 - name: Build run: cargo build - name: Test run: cargo test - name: Check capnp schema should match the generated code + working-directory: ./hypersync-net-types run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get install -y capnproto libcapnp-dev @@ -46,6 +50,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + # selecting a toolchain either by action or manual `rustup` calls should happen + # before the plugin, as the cache uses the current rustc version as its cache key + - run: rustup toolchain install stable - uses: Swatinem/rust-cache@v2 - name: Rustfmt run: cargo fmt --check From 8683dd13585129163b6b2632c102c47c1dc4bde7 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 19:02:57 +0200 Subject: [PATCH 08/12] Format generated --- hypersync-net-types/src/hypersync_net_types_capnp.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/hypersync-net-types/src/hypersync_net_types_capnp.rs b/hypersync-net-types/src/hypersync_net_types_capnp.rs index 70ba285..50e6fd1 100644 --- a/hypersync-net-types/src/hypersync_net_types_capnp.rs +++ b/hypersync-net-types/src/hypersync_net_types_capnp.rs @@ -5,7 +5,6 @@ pub mod query_response_data { #[derive(Copy, Clone)] pub struct Owned(()); - impl ::capnp::introspect::Introspect for Owned { fn introspect() -> ::capnp::introspect::Type { ::capnp::introspect::TypeVariant::Struct(::capnp::introspect::RawBrandedStructSchema { From 424e61cd0ed4eabf6fe4028b72e1c1b86070e51f Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 19:04:13 +0200 Subject: [PATCH 09/12] Fix last clippy warning --- hypersync-client/src/stream.rs | 4 ++-- hypersync-format/src/types/util.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hypersync-client/src/stream.rs b/hypersync-client/src/stream.rs index 958e1d3..e20b413 100644 --- a/hypersync-client/src/stream.rs +++ b/hypersync-client/src/stream.rs @@ -169,7 +169,7 @@ pub async fn stream_arrow( let x = x as u32; let batch_size = cmp::max((x as f64 * ratio) as u64, min_batch_size); - let step = batch_size | u64::from(next_generation) << 32; + let step = batch_size | (u64::from(next_generation) << 32); Some(step) }) .ok(); @@ -180,7 +180,7 @@ pub async fn stream_arrow( let x = x as u32; let batch_size = cmp::min((x as f64 * ratio) as u64, max_batch_size); - let step = batch_size | u64::from(next_generation) << 32; + let step = batch_size | (u64::from(next_generation) << 32); Some(step) }) .ok(); diff --git a/hypersync-format/src/types/util.rs b/hypersync-format/src/types/util.rs index 9d2b82e..3c2e352 100644 --- a/hypersync-format/src/types/util.rs +++ b/hypersync-format/src/types/util.rs @@ -1,5 +1,5 @@ pub fn decode_hex(hex: &str) -> Result, faster_hex::Error> { - let len = hex.as_bytes().len(); + let len = hex.len(); let mut dst = vec![0; len / 2]; faster_hex::hex_decode(hex.as_bytes(), &mut dst)?; From bcf95962cc6c758d1b1bd1f4d5a97c45ae8fe3eb Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Thu, 27 Feb 2025 19:14:43 +0200 Subject: [PATCH 10/12] Call capnpc directly --- hypersync-net-types/makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hypersync-net-types/makefile b/hypersync-net-types/makefile index cd830e2..b8c4978 100644 --- a/hypersync-net-types/makefile +++ b/hypersync-net-types/makefile @@ -2,5 +2,5 @@ capnp-build: cargo install capnpc - capnp compile -orust:src hypersync_net_types.capnp + capnpc -orust:src hypersync_net_types.capnp rustfmt -- src/hypersync_net_types_capnp.rs From a29a95434d20949ce70b064e938072528187ec95 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Mon, 3 Mar 2025 10:35:24 +0200 Subject: [PATCH 11/12] Enforce use of capnp 1.1.0 --- .github/workflows/capnp-build.dockerfile | 33 +++++++++++++++++++ .github/workflows/ci.yaml | 4 +-- hypersync-net-types/makefile | 2 ++ .../src/hypersync_net_types_capnp.rs | 15 ++++----- 4 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/capnp-build.dockerfile diff --git a/.github/workflows/capnp-build.dockerfile b/.github/workflows/capnp-build.dockerfile new file mode 100644 index 0000000..d831291 --- /dev/null +++ b/.github/workflows/capnp-build.dockerfile @@ -0,0 +1,33 @@ +# This Dockerfile is used for ci to have the latest version of Cap'n Proto (1.1.0) +# built from source. Since ubuntu package manager is not up to date. + +# Start with a base image +FROM ubuntu:22.04 + +# Set non-interactive mode to prevent prompts during installation +ENV DEBIAN_FRONTEND=noninteractive + +# Install dependencies +RUN apt update && apt install -y \ + build-essential \ + cmake \ + curl \ + git \ + sudo \ + && rm -rf /var/lib/apt/lists/* + +# Download and install Cap'n Proto 1.1.0 +WORKDIR /opt +RUN curl -O https://capnproto.org/capnproto-c++-1.1.0.tar.gz && \ + tar zxf capnproto-c++-1.1.0.tar.gz && \ + cd capnproto-c++-1.1.0 && \ + ./configure && \ + make -j$(nproc) check && \ + sudo make install && \ + cd .. && rm -rf capnproto-c++-1.1.0 capnproto-c++-1.1.0.tar.gz + +# Set environment variables +ENV PATH="/usr/local/bin:$PATH" + +# Default shell +CMD ["/bin/bash"] diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9ffa098..389bc76 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,6 +18,8 @@ env: jobs: test_dev: runs-on: ubuntu-latest + # see capnp-build.dockerfile + container: ghcr.io/jonoprest/capnp-runner:latest steps: - uses: actions/checkout@v3 # selecting a toolchain either by action or manual `rustup` calls should happen @@ -31,8 +33,6 @@ jobs: - name: Check capnp schema should match the generated code working-directory: ./hypersync-net-types run: | - export DEBIAN_FRONTEND=noninteractive - sudo apt-get install -y capnproto libcapnp-dev make capnp-build git diff --exit-code diff --git a/hypersync-net-types/makefile b/hypersync-net-types/makefile index b8c4978..7ef43e4 100644 --- a/hypersync-net-types/makefile +++ b/hypersync-net-types/makefile @@ -1,6 +1,8 @@ .PHONY: capnp-build capnp-build: + # Ensure we are building with the same capnp (1.1.0) in all environments + capnp --version | grep -q "1.1.0" cargo install capnpc capnpc -orust:src hypersync_net_types.capnp rustfmt -- src/hypersync_net_types_capnp.rs diff --git a/hypersync-net-types/src/hypersync_net_types_capnp.rs b/hypersync-net-types/src/hypersync_net_types_capnp.rs index 50e6fd1..ac5efcf 100644 --- a/hypersync-net-types/src/hypersync_net_types_capnp.rs +++ b/hypersync-net-types/src/hypersync_net_types_capnp.rs @@ -323,14 +323,13 @@ pub mod query_response_data { } impl Pipeline {} mod _private { - pub static ENCODED_NODE: [::capnp::Word; 82] = [ - ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + pub static ENCODED_NODE: [::capnp::Word; 81] = [ + ::capnp::word(0, 0, 0, 0, 5, 0, 6, 0), ::capnp::word(49, 157, 62, 151, 169, 39, 204, 137), ::capnp::word(26, 0, 0, 0, 1, 0, 0, 0), ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), ::capnp::word(4, 0, 7, 0, 0, 0, 0, 0), ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(22, 0, 0, 0, 138, 0, 0, 0), ::capnp::word(21, 0, 0, 0, 98, 1, 0, 0), ::capnp::word(41, 0, 0, 0, 7, 0, 0, 0), ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), @@ -733,14 +732,13 @@ pub mod rollback_guard { } impl Pipeline {} mod _private { - pub static ENCODED_NODE: [::capnp::Word; 100] = [ - ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + pub static ENCODED_NODE: [::capnp::Word; 99] = [ + ::capnp::word(0, 0, 0, 0, 5, 0, 6, 0), ::capnp::word(75, 175, 253, 87, 239, 86, 125, 149), ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(140, 0, 0, 0, 43, 1, 0, 0), ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), @@ -1200,14 +1198,13 @@ pub mod query_response { } } mod _private { - pub static ENCODED_NODE: [::capnp::Word; 100] = [ - ::capnp::word(0, 0, 0, 0, 6, 0, 6, 0), + pub static ENCODED_NODE: [::capnp::Word; 99] = [ + ::capnp::word(0, 0, 0, 0, 5, 0, 6, 0), ::capnp::word(226, 9, 54, 243, 16, 76, 106, 205), ::capnp::word(26, 0, 0, 0, 1, 0, 3, 0), ::capnp::word(197, 128, 248, 24, 106, 165, 137, 146), ::capnp::word(2, 0, 7, 0, 0, 0, 0, 0), ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), - ::capnp::word(45, 1, 0, 0, 228, 1, 0, 0), ::capnp::word(21, 0, 0, 0, 66, 1, 0, 0), ::capnp::word(37, 0, 0, 0, 7, 0, 0, 0), ::capnp::word(0, 0, 0, 0, 0, 0, 0, 0), From 6c403a32248e6b3b0cd0d3600872eff3508e1d95 Mon Sep 17 00:00:00 2001 From: Jono Prest Date: Mon, 3 Mar 2025 10:54:23 +0200 Subject: [PATCH 12/12] Updated dockerfile entry point --- .github/workflows/ci.yaml | 2 +- .../capnp-build.dockerfile => capnp-runner.dockerfile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename .github/workflows/capnp-build.dockerfile => capnp-runner.dockerfile (93%) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 389bc76..5af0cd4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,7 +18,7 @@ env: jobs: test_dev: runs-on: ubuntu-latest - # see capnp-build.dockerfile + # see capnp-runner.dockerfile container: ghcr.io/jonoprest/capnp-runner:latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/capnp-build.dockerfile b/capnp-runner.dockerfile similarity index 93% rename from .github/workflows/capnp-build.dockerfile rename to capnp-runner.dockerfile index d831291..1b8d268 100644 --- a/.github/workflows/capnp-build.dockerfile +++ b/capnp-runner.dockerfile @@ -29,5 +29,5 @@ RUN curl -O https://capnproto.org/capnproto-c++-1.1.0.tar.gz && \ # Set environment variables ENV PATH="/usr/local/bin:$PATH" -# Default shell -CMD ["/bin/bash"] +# Keep the container running +CMD ["tail", "-f", "/dev/null"]