From aa4778ff072c9ea6af8c01ced47f60bf321188cc Mon Sep 17 00:00:00 2001 From: WindSoilder Date: Sun, 4 Sep 2022 19:39:29 +0800 Subject: [PATCH 1/4] remove useless file (#6472) --- crates/nu-plugin/src/plugin_capnp.rs | 5157 -------------------------- 1 file changed, 5157 deletions(-) delete mode 100644 crates/nu-plugin/src/plugin_capnp.rs diff --git a/crates/nu-plugin/src/plugin_capnp.rs b/crates/nu-plugin/src/plugin_capnp.rs deleted file mode 100644 index 4598cef028..0000000000 --- a/crates/nu-plugin/src/plugin_capnp.rs +++ /dev/null @@ -1,5157 +0,0 @@ -// @generated by the capnpc-rust plugin to the Cap'n Proto schema compiler. -// DO NOT EDIT. -// source: crates/nu-plugin/src/serializers/capnp/schema/plugin.capnp - -pub mod err { - /* T */ - pub use self::Which::{Err, Ok}; - - #[derive(Copy, Clone)] - pub struct Owned { - _phantom: ::core::marker::PhantomData, - } - impl<'a, T> ::capnp::traits::Owned<'a> for Owned - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - type Reader = Reader<'a, T>; - type Builder = Builder<'a, T>; - } - impl<'a, T> ::capnp::traits::OwnedStruct<'a> for Owned - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - type Reader = Reader<'a, T>; - type Builder = Builder<'a, T>; - } - impl ::capnp::traits::Pipelined for Owned - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - reader: ::capnp::private::layout::StructReader<'a>, - _phantom: ::core::marker::PhantomData, - } - - impl<'a, T> ::capnp::traits::HasTypeId for Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a, T> ::capnp::traits::FromStructReader<'a> for Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a, T> { - Reader { - reader, - _phantom: ::core::marker::PhantomData, - } - } - } - - impl<'a, T> ::capnp::traits::FromPointerReader<'a> for Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - fn get_from_pointer( - reader: &::capnp::private::layout::PointerReader<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - impl<'a, T> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { - self.reader - } - } - - impl<'a, T> ::capnp::traits::Imbue<'a> for Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { - self.reader - .imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) - } - } - - impl<'a, T> Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - pub fn reborrow(&self) -> Reader<'_, T> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn has_err(&self) -> bool { - if self.reader.get_data_field::(0) != 0 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn has_ok(&self) -> bool { - if self.reader.get_data_field::(0) != 1 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.reader.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Err( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 1 => ::core::result::Result::Ok(Ok( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Builder<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - builder: ::capnp::private::layout::StructBuilder<'a>, - _phantom: ::core::marker::PhantomData, - } - impl<'a, T> ::capnp::traits::HasStructSize for Builder<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a, T> ::capnp::traits::HasTypeId for Builder<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a, T> ::capnp::traits::FromStructBuilder<'a> for Builder<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a, T> { - Builder { - builder, - _phantom: ::core::marker::PhantomData, - } - } - } - - impl<'a, T> ::capnp::traits::ImbueMut<'a> for Builder<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - 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, T> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - fn init_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - _size: u32, - ) -> Builder<'a, T> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a, T> ::capnp::traits::SetPointerBuilder for Reader<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a, T>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a, T> Builder<'a, T> - where - T: for<'c> ::capnp::traits::Owned<'c>, - { - pub fn into_reader(self) -> Reader<'a, T> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_, T> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_, T> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn set_err(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.set_data_field::(0, 0); - self.builder.get_pointer_field(0).set_text(value); - } - #[inline] - pub fn init_err(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.set_data_field::(0, 0); - self.builder.get_pointer_field(0).init_text(size) - } - #[inline] - pub fn has_err(&self) -> bool { - if self.builder.get_data_field::(0) != 0 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn initn_ok(self, length: u32) -> >::Builder { - self.builder.set_data_field::(0, 1); - ::capnp::any_pointer::Builder::new(self.builder.get_pointer_field(0)).initn_as(length) - } - #[inline] - pub fn set_ok( - &mut self, - value: >::Reader, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 1); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_ok(self) -> >::Builder { - self.builder.set_data_field::(0, 1); - ::capnp::any_pointer::Builder::new(self.builder.get_pointer_field(0)).init_as() - } - #[inline] - pub fn has_ok(&self) -> bool { - if self.builder.get_data_field::(0) != 1 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.builder.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Err( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 1 => ::core::result::Result::Ok(Ok( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - _phantom: ::core::marker::PhantomData, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - _phantom: ::core::marker::PhantomData, - } - } - } - impl Pipeline - where - T: ::capnp::traits::Pipelined, - ::Pipeline: ::capnp::capability::FromTypelessPipeline, - { - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 1, - pointers: 1, - }; - pub const TYPE_ID: u64 = 0xaed6_5bd3_8214_33f8; - } - pub enum Which { - Err(A0), - Ok(A1), - } - pub type WhichReader<'a, T> = Which< - ::capnp::Result<::capnp::text::Reader<'a>>, - ::capnp::Result<>::Reader>, - >; - pub type WhichBuilder<'a, T> = Which< - ::capnp::Result<::capnp::text::Builder<'a>>, - ::capnp::Result<>::Builder>, - >; -} - -pub mod map { - /* Key,Value */ - #[derive(Copy, Clone)] - pub struct Owned { - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - impl<'a, Key, Value> ::capnp::traits::Owned<'a> for Owned - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - type Reader = Reader<'a, Key, Value>; - type Builder = Builder<'a, Key, Value>; - } - impl<'a, Key, Value> ::capnp::traits::OwnedStruct<'a> for Owned - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - type Reader = Reader<'a, Key, Value>; - type Builder = Builder<'a, Key, Value>; - } - impl ::capnp::traits::Pipelined for Owned - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - reader: ::capnp::private::layout::StructReader<'a>, - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - - impl<'a, Key, Value> ::capnp::traits::HasTypeId for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a, Key, Value> ::capnp::traits::FromStructReader<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a, Key, Value> { - Reader { - reader, - _phantom: ::core::marker::PhantomData, - } - } - } - - impl<'a, Key, Value> ::capnp::traits::FromPointerReader<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn get_from_pointer( - reader: &::capnp::private::layout::PointerReader<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - impl<'a, Key, Value> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { - self.reader - } - } - - impl<'a, Key, Value> ::capnp::traits::Imbue<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { - self.reader - .imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) - } - } - - impl<'a, Key, Value> Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - pub fn reborrow(&self) -> Reader<'_, Key, Value> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_entries( - self, - ) -> ::capnp::Result< - ::capnp::struct_list::Reader<'a, crate::plugin_capnp::map::entry::Owned>, - > { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_entries(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - } - - pub struct Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - builder: ::capnp::private::layout::StructBuilder<'a>, - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - impl<'a, Key, Value> ::capnp::traits::HasStructSize for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a, Key, Value> ::capnp::traits::HasTypeId for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a, Key, Value> ::capnp::traits::FromStructBuilder<'a> for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a, Key, Value> { - Builder { - builder, - _phantom: ::core::marker::PhantomData, - } - } - } - - impl<'a, Key, Value> ::capnp::traits::ImbueMut<'a> for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - 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, Key, Value> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn init_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - _size: u32, - ) -> Builder<'a, Key, Value> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a, Key, Value> ::capnp::traits::SetPointerBuilder for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a, Key, Value>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a, Key, Value> Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - pub fn into_reader(self) -> Reader<'a, Key, Value> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_, Key, Value> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_, Key, Value> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_entries( - self, - ) -> ::capnp::Result< - ::capnp::struct_list::Builder<'a, crate::plugin_capnp::map::entry::Owned>, - > { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_entries( - &mut self, - value: ::capnp::struct_list::Reader< - 'a, - crate::plugin_capnp::map::entry::Owned, - >, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_entries( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::map::entry::Owned> - { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(0), - size, - ) - } - #[inline] - pub fn has_entries(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - _phantom: ::core::marker::PhantomData, - } - } - } - impl Pipeline - where - Key: ::capnp::traits::Pipelined, - ::Pipeline: ::capnp::capability::FromTypelessPipeline, - Value: ::capnp::traits::Pipelined, - ::Pipeline: ::capnp::capability::FromTypelessPipeline, - { - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 1, - }; - pub const TYPE_ID: u64 = 0x9783_acc1_0be0_6fce; - } - - pub mod entry { - /* Key,Value */ - #[derive(Copy, Clone)] - pub struct Owned { - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - impl<'a, Key, Value> ::capnp::traits::Owned<'a> for Owned - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - type Reader = Reader<'a, Key, Value>; - type Builder = Builder<'a, Key, Value>; - } - impl<'a, Key, Value> ::capnp::traits::OwnedStruct<'a> for Owned - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - type Reader = Reader<'a, Key, Value>; - type Builder = Builder<'a, Key, Value>; - } - impl ::capnp::traits::Pipelined for Owned - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - reader: ::capnp::private::layout::StructReader<'a>, - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - - impl<'a, Key, Value> ::capnp::traits::HasTypeId for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a, Key, Value> ::capnp::traits::FromStructReader<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a, Key, Value> { - Reader { - reader, - _phantom: ::core::marker::PhantomData, - } - } - } - - impl<'a, Key, Value> ::capnp::traits::FromPointerReader<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn get_from_pointer( - reader: &::capnp::private::layout::PointerReader<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - impl<'a, Key, Value> ::capnp::traits::IntoInternalStructReader<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn into_internal_struct_reader(self) -> ::capnp::private::layout::StructReader<'a> { - self.reader - } - } - - impl<'a, Key, Value> ::capnp::traits::Imbue<'a> for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn imbue(&mut self, cap_table: &'a ::capnp::private::layout::CapTable) { - self.reader - .imbue(::capnp::private::layout::CapTableReader::Plain(cap_table)) - } - } - - impl<'a, Key, Value> Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - pub fn reborrow(&self) -> Reader<'_, Key, Value> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_key(self) -> ::capnp::Result<>::Reader> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_key(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_value( - self, - ) -> ::capnp::Result<>::Reader> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_value(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() - } - } - - pub struct Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - builder: ::capnp::private::layout::StructBuilder<'a>, - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - impl<'a, Key, Value> ::capnp::traits::HasStructSize for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a, Key, Value> ::capnp::traits::HasTypeId for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a, Key, Value> ::capnp::traits::FromStructBuilder<'a> for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn new( - builder: ::capnp::private::layout::StructBuilder<'a>, - ) -> Builder<'a, Key, Value> { - Builder { - builder, - _phantom: ::core::marker::PhantomData, - } - } - } - - impl<'a, Key, Value> ::capnp::traits::ImbueMut<'a> for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - 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, Key, Value> ::capnp::traits::FromPointerBuilder<'a> for Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn init_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - _size: u32, - ) -> Builder<'a, Key, Value> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a, Key, Value> ::capnp::traits::SetPointerBuilder for Reader<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a, Key, Value>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a, Key, Value> Builder<'a, Key, Value> - where - Key: for<'c> ::capnp::traits::Owned<'c>, - Value: for<'c> ::capnp::traits::Owned<'c>, - { - pub fn into_reader(self) -> Reader<'a, Key, Value> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_, Key, Value> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_, Key, Value> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_key(self) -> ::capnp::Result<>::Builder> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn initn_key(self, length: u32) -> >::Builder { - ::capnp::any_pointer::Builder::new(self.builder.get_pointer_field(0)) - .initn_as(length) - } - #[inline] - pub fn set_key( - &mut self, - value: >::Reader, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_key(self) -> >::Builder { - ::capnp::any_pointer::Builder::new(self.builder.get_pointer_field(0)).init_as() - } - #[inline] - pub fn has_key(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_value( - self, - ) -> ::capnp::Result<>::Builder> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn initn_value( - self, - length: u32, - ) -> >::Builder { - ::capnp::any_pointer::Builder::new(self.builder.get_pointer_field(1)) - .initn_as(length) - } - #[inline] - pub fn set_value( - &mut self, - value: >::Reader, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_value(self) -> >::Builder { - ::capnp::any_pointer::Builder::new(self.builder.get_pointer_field(1)).init_as() - } - #[inline] - pub fn has_value(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - _phantom: ::core::marker::PhantomData<(Key, Value)>, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - _phantom: ::core::marker::PhantomData, - } - } - } - impl Pipeline - where - Key: ::capnp::traits::Pipelined, - ::Pipeline: - ::capnp::capability::FromTypelessPipeline, - Value: ::capnp::traits::Pipelined, - ::Pipeline: - ::capnp::capability::FromTypelessPipeline, - { - pub fn get_key(&self) -> ::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0)) - } - pub fn get_value(&self) -> ::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 2, - }; - pub const TYPE_ID: u64 = 0xde4c_62ad_0c9f_67c3; - } - } -} - -pub mod span { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_start(self) -> u64 { - self.reader.get_data_field::(0) - } - #[inline] - pub fn get_end(self) -> u64 { - self.reader.get_data_field::(1) - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_start(self) -> u64 { - self.builder.get_data_field::(0) - } - #[inline] - pub fn set_start(&mut self, value: u64) { - self.builder.set_data_field::(0, value); - } - #[inline] - pub fn get_end(self) -> u64 { - self.builder.get_data_field::(1) - } - #[inline] - pub fn set_end(&mut self, value: u64) { - self.builder.set_data_field::(1, value); - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline {} - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 2, - pointers: 0, - }; - pub const TYPE_ID: u64 = 0xe8b6_78b5_d953_4593; - } -} - -pub mod value { - pub use self::Which::{Bool, Float, Int, List, Record, String, Void}; - - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_span(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_span(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn has_string(&self) -> bool { - if self.reader.get_data_field::(0) != 4 { - return false; - } - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn has_list(&self) -> bool { - if self.reader.get_data_field::(0) != 5 { - return false; - } - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn has_record(&self) -> bool { - if self.reader.get_data_field::(0) != 6 { - return false; - } - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.reader.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Void(())), - 1 => ::core::result::Result::Ok(Bool(self.reader.get_bool_field(16))), - 2 => ::core::result::Result::Ok(Int(self.reader.get_data_field::(1))), - 3 => ::core::result::Result::Ok(Float(self.reader.get_data_field::(1))), - 4 => ::core::result::Result::Ok(String( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ), - )), - 5 => ::core::result::Result::Ok(List( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ), - )), - 6 => ::core::result::Result::Ok(Record( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_span(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_span( - &mut self, - value: crate::plugin_capnp::span::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_span(self) -> crate::plugin_capnp::span::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_span(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn set_void(&mut self, _value: ()) { - self.builder.set_data_field::(0, 0); - } - #[inline] - pub fn set_bool(&mut self, value: bool) { - self.builder.set_data_field::(0, 1); - self.builder.set_bool_field(16, value); - } - #[inline] - pub fn set_int(&mut self, value: i64) { - self.builder.set_data_field::(0, 2); - self.builder.set_data_field::(1, value); - } - #[inline] - pub fn set_float(&mut self, value: f64) { - self.builder.set_data_field::(0, 3); - self.builder.set_data_field::(1, value); - } - #[inline] - pub fn set_string(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.set_data_field::(0, 4); - self.builder.get_pointer_field(1).set_text(value); - } - #[inline] - pub fn init_string(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.set_data_field::(0, 4); - self.builder.get_pointer_field(1).init_text(size) - } - #[inline] - pub fn has_string(&self) -> bool { - if self.builder.get_data_field::(0) != 4 { - return false; - } - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn set_list( - &mut self, - value: ::capnp::struct_list::Reader<'a, crate::plugin_capnp::value::Owned>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 5); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_list( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::value::Owned> { - self.builder.set_data_field::(0, 5); - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(1), - size, - ) - } - #[inline] - pub fn has_list(&self) -> bool { - if self.builder.get_data_field::(0) != 5 { - return false; - } - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn set_record( - &mut self, - value: crate::plugin_capnp::record::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 6); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_record(self) -> crate::plugin_capnp::record::Builder<'a> { - self.builder.set_data_field::(0, 6); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), 0) - } - #[inline] - pub fn has_record(&self) -> bool { - if self.builder.get_data_field::(0) != 6 { - return false; - } - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.builder.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Void(())), - 1 => ::core::result::Result::Ok(Bool(self.builder.get_bool_field(16))), - 2 => ::core::result::Result::Ok(Int(self.builder.get_data_field::(1))), - 3 => ::core::result::Result::Ok(Float(self.builder.get_data_field::(1))), - 4 => ::core::result::Result::Ok(String( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ), - )), - 5 => ::core::result::Result::Ok(List( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ), - )), - 6 => ::core::result::Result::Ok(Record( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline { - pub fn get_span(&self) -> crate::plugin_capnp::span::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 2, - pointers: 2, - }; - pub const TYPE_ID: u64 = 0x92a0_59fb_5627_86a8; - } - pub enum Which { - Void(()), - Bool(bool), - Int(i64), - Float(f64), - String(A0), - List(A1), - Record(A2), - } - pub type WhichReader<'a> = Which< - ::capnp::Result<::capnp::text::Reader<'a>>, - ::capnp::Result<::capnp::struct_list::Reader<'a, crate::plugin_capnp::value::Owned>>, - ::capnp::Result>, - >; - pub type WhichBuilder<'a> = Which< - ::capnp::Result<::capnp::text::Builder<'a>>, - ::capnp::Result<::capnp::struct_list::Builder<'a, crate::plugin_capnp::value::Owned>>, - ::capnp::Result>, - >; -} - -pub mod record { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_cols(self) -> ::capnp::Result<::capnp::text_list::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_cols(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_vals( - self, - ) -> ::capnp::Result<::capnp::struct_list::Reader<'a, crate::plugin_capnp::value::Owned>> - { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_vals(&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> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_cols(self) -> ::capnp::Result<::capnp::text_list::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_cols(&mut self, value: ::capnp::text_list::Reader<'a>) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_cols(self, size: u32) -> ::capnp::text_list::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(0), - size, - ) - } - #[inline] - pub fn has_cols(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_vals( - self, - ) -> ::capnp::Result<::capnp::struct_list::Builder<'a, crate::plugin_capnp::value::Owned>> - { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_vals( - &mut self, - value: ::capnp::struct_list::Reader<'a, crate::plugin_capnp::value::Owned>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_vals( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::value::Owned> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(1), - size, - ) - } - #[inline] - pub fn has_vals(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline {} - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 2, - }; - pub const TYPE_ID: u64 = 0xd435_7cbb_f79b_12fb; - } -} - -pub mod signature { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_usage(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_usage(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_extra_usage(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_extra_usage(&self) -> bool { - !self.reader.get_pointer_field(2).is_null() - } - #[inline] - pub fn get_search_terms(self) -> ::capnp::Result<::capnp::text_list::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(3), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_search_terms(&self) -> bool { - !self.reader.get_pointer_field(3).is_null() - } - #[inline] - pub fn get_required_positional( - self, - ) -> ::capnp::Result<::capnp::struct_list::Reader<'a, crate::plugin_capnp::argument::Owned>> - { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(4), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_required_positional(&self) -> bool { - !self.reader.get_pointer_field(4).is_null() - } - #[inline] - pub fn get_optional_positional( - self, - ) -> ::capnp::Result<::capnp::struct_list::Reader<'a, crate::plugin_capnp::argument::Owned>> - { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(5), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_optional_positional(&self) -> bool { - !self.reader.get_pointer_field(5).is_null() - } - #[inline] - pub fn get_rest(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(6), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_rest(&self) -> bool { - !self.reader.get_pointer_field(6).is_null() - } - #[inline] - pub fn get_named( - self, - ) -> ::capnp::Result<::capnp::struct_list::Reader<'a, crate::plugin_capnp::flag::Owned>> - { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(7), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_named(&self) -> bool { - !self.reader.get_pointer_field(7).is_null() - } - #[inline] - pub fn get_is_filter(self) -> bool { - self.reader.get_bool_field(0) - } - #[inline] - pub fn get_category( - self, - ) -> ::core::result::Result { - ::capnp::traits::FromU16::from_u16(self.reader.get_data_field::(1)) - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_name(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(0).set_text(value); - } - #[inline] - pub fn init_name(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(0).init_text(size) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_usage(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_usage(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(1).set_text(value); - } - #[inline] - pub fn init_usage(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(1).init_text(size) - } - #[inline] - pub fn has_usage(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_extra_usage(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_extra_usage(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(2).set_text(value); - } - #[inline] - pub fn init_extra_usage(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(2).init_text(size) - } - #[inline] - pub fn has_extra_usage(&self) -> bool { - !self.builder.get_pointer_field(2).is_null() - } - #[inline] - pub fn get_search_terms(self) -> ::capnp::Result<::capnp::text_list::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(3), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_search_terms( - &mut self, - value: ::capnp::text_list::Reader<'a>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(3), - value, - false, - ) - } - #[inline] - pub fn init_search_terms(self, size: u32) -> ::capnp::text_list::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(3), - size, - ) - } - #[inline] - pub fn has_search_terms(&self) -> bool { - !self.builder.get_pointer_field(3).is_null() - } - #[inline] - pub fn get_required_positional( - self, - ) -> ::capnp::Result<::capnp::struct_list::Builder<'a, crate::plugin_capnp::argument::Owned>> - { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(4), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_required_positional( - &mut self, - value: ::capnp::struct_list::Reader<'a, crate::plugin_capnp::argument::Owned>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(4), - value, - false, - ) - } - #[inline] - pub fn init_required_positional( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::argument::Owned> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(4), - size, - ) - } - #[inline] - pub fn has_required_positional(&self) -> bool { - !self.builder.get_pointer_field(4).is_null() - } - #[inline] - pub fn get_optional_positional( - self, - ) -> ::capnp::Result<::capnp::struct_list::Builder<'a, crate::plugin_capnp::argument::Owned>> - { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(5), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_optional_positional( - &mut self, - value: ::capnp::struct_list::Reader<'a, crate::plugin_capnp::argument::Owned>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(5), - value, - false, - ) - } - #[inline] - pub fn init_optional_positional( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::argument::Owned> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(5), - size, - ) - } - #[inline] - pub fn has_optional_positional(&self) -> bool { - !self.builder.get_pointer_field(5).is_null() - } - #[inline] - pub fn get_rest(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(6), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_rest( - &mut self, - value: crate::plugin_capnp::argument::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(6), - value, - false, - ) - } - #[inline] - pub fn init_rest(self) -> crate::plugin_capnp::argument::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(6), 0) - } - #[inline] - pub fn has_rest(&self) -> bool { - !self.builder.get_pointer_field(6).is_null() - } - #[inline] - pub fn get_named( - self, - ) -> ::capnp::Result<::capnp::struct_list::Builder<'a, crate::plugin_capnp::flag::Owned>> - { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(7), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_named( - &mut self, - value: ::capnp::struct_list::Reader<'a, crate::plugin_capnp::flag::Owned>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(7), - value, - false, - ) - } - #[inline] - pub fn init_named( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::flag::Owned> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(7), - size, - ) - } - #[inline] - pub fn has_named(&self) -> bool { - !self.builder.get_pointer_field(7).is_null() - } - #[inline] - pub fn get_is_filter(self) -> bool { - self.builder.get_bool_field(0) - } - #[inline] - pub fn set_is_filter(&mut self, value: bool) { - self.builder.set_bool_field(0, value); - } - #[inline] - pub fn get_category( - self, - ) -> ::core::result::Result { - ::capnp::traits::FromU16::from_u16(self.builder.get_data_field::(1)) - } - #[inline] - pub fn set_category(&mut self, value: crate::plugin_capnp::Category) { - self.builder.set_data_field::(1, value as u16) - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline { - pub fn get_rest(&self) -> crate::plugin_capnp::argument::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(6)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 1, - pointers: 8, - }; - pub const TYPE_ID: u64 = 0xec96_eeb4_8cb7_90fa; - } -} - -#[repr(u16)] -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum Category { - Default = 0, - Conversions = 1, - Core = 2, - Date = 3, - Env = 4, - Experimental = 5, - Filesystem = 6, - Filters = 7, - Formats = 8, - Math = 9, - Network = 10, - Random = 11, - Platform = 12, - Shells = 13, - Strings = 14, - System = 15, - Viewers = 16, - Hash = 17, - Generators = 18, -} -impl ::capnp::traits::FromU16 for Category { - #[inline] - fn from_u16(value: u16) -> ::core::result::Result { - match value { - 0 => ::core::result::Result::Ok(Category::Default), - 1 => ::core::result::Result::Ok(Category::Conversions), - 2 => ::core::result::Result::Ok(Category::Core), - 3 => ::core::result::Result::Ok(Category::Date), - 4 => ::core::result::Result::Ok(Category::Env), - 5 => ::core::result::Result::Ok(Category::Experimental), - 6 => ::core::result::Result::Ok(Category::Filesystem), - 7 => ::core::result::Result::Ok(Category::Filters), - 8 => ::core::result::Result::Ok(Category::Formats), - 9 => ::core::result::Result::Ok(Category::Math), - 10 => ::core::result::Result::Ok(Category::Network), - 11 => ::core::result::Result::Ok(Category::Random), - 12 => ::core::result::Result::Ok(Category::Platform), - 13 => ::core::result::Result::Ok(Category::Shells), - 14 => ::core::result::Result::Ok(Category::Strings), - 15 => ::core::result::Result::Ok(Category::System), - 16 => ::core::result::Result::Ok(Category::Viewers), - 17 => ::core::result::Result::Ok(Category::Hash), - 18 => ::core::result::Result::Ok(Category::Generators), - n => ::core::result::Result::Err(::capnp::NotInSchema(n)), - } - } -} -impl ::capnp::traits::ToU16 for Category { - #[inline] - fn to_u16(self) -> u16 { - self as u16 - } -} -impl ::capnp::traits::HasTypeId for Category { - #[inline] - fn type_id() -> u64 { - 0x8920_14c1_76ba_5343u64 - } -} - -pub mod flag { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_long(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_long(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_short(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_short(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_arg( - self, - ) -> ::core::result::Result { - ::capnp::traits::FromU16::from_u16(self.reader.get_data_field::(0)) - } - #[inline] - pub fn get_required(self) -> bool { - self.reader.get_bool_field(16) - } - #[inline] - pub fn get_desc(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_desc(&self) -> bool { - !self.reader.get_pointer_field(2).is_null() - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_long(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_long(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(0).set_text(value); - } - #[inline] - pub fn init_long(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(0).init_text(size) - } - #[inline] - pub fn has_long(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_short(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_short(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(1).set_text(value); - } - #[inline] - pub fn init_short(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(1).init_text(size) - } - #[inline] - pub fn has_short(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_arg( - self, - ) -> ::core::result::Result { - ::capnp::traits::FromU16::from_u16(self.builder.get_data_field::(0)) - } - #[inline] - pub fn set_arg(&mut self, value: crate::plugin_capnp::Shape) { - self.builder.set_data_field::(0, value as u16) - } - #[inline] - pub fn get_required(self) -> bool { - self.builder.get_bool_field(16) - } - #[inline] - pub fn set_required(&mut self, value: bool) { - self.builder.set_bool_field(16, value); - } - #[inline] - pub fn get_desc(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_desc(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(2).set_text(value); - } - #[inline] - pub fn init_desc(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(2).init_text(size) - } - #[inline] - pub fn has_desc(&self) -> bool { - !self.builder.get_pointer_field(2).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline {} - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 1, - pointers: 3, - }; - pub const TYPE_ID: u64 = 0xc3e5_b612_6800_e050; - } -} - -pub mod argument { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_desc(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_desc(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_shape( - self, - ) -> ::core::result::Result { - ::capnp::traits::FromU16::from_u16(self.reader.get_data_field::(0)) - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_name(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(0).set_text(value); - } - #[inline] - pub fn init_name(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(0).init_text(size) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_desc(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_desc(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(1).set_text(value); - } - #[inline] - pub fn init_desc(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(1).init_text(size) - } - #[inline] - pub fn has_desc(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_shape( - self, - ) -> ::core::result::Result { - ::capnp::traits::FromU16::from_u16(self.builder.get_data_field::(0)) - } - #[inline] - pub fn set_shape(&mut self, value: crate::plugin_capnp::Shape) { - self.builder.set_data_field::(0, value as u16) - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline {} - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 1, - pointers: 2, - }; - pub const TYPE_ID: u64 = 0xe49c_3d71_859d_47e9; - } -} - -#[repr(u16)] -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum Shape { - None = 0, - Any = 1, - String = 2, - Number = 3, - Int = 4, - Boolean = 5, -} -impl ::capnp::traits::FromU16 for Shape { - #[inline] - fn from_u16(value: u16) -> ::core::result::Result { - match value { - 0 => ::core::result::Result::Ok(Shape::None), - 1 => ::core::result::Result::Ok(Shape::Any), - 2 => ::core::result::Result::Ok(Shape::String), - 3 => ::core::result::Result::Ok(Shape::Number), - 4 => ::core::result::Result::Ok(Shape::Int), - 5 => ::core::result::Result::Ok(Shape::Boolean), - n => ::core::result::Result::Err(::capnp::NotInSchema(n)), - } - } -} -impl ::capnp::traits::ToU16 for Shape { - #[inline] - fn to_u16(self) -> u16 { - self as u16 - } -} -impl ::capnp::traits::HasTypeId for Shape { - #[inline] - fn type_id() -> u64 { - 0xaa46_1154_9e24_a910u64 - } -} - -pub mod evaluated_call { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_head(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_head(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_positional( - self, - ) -> ::capnp::Result<::capnp::struct_list::Reader<'a, crate::plugin_capnp::value::Owned>> - { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_positional(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_named( - self, - ) -> ::capnp::Result< - crate::plugin_capnp::map::Reader< - 'a, - ::capnp::text::Owned, - crate::plugin_capnp::value::Owned, - >, - > { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_named(&self) -> bool { - !self.reader.get_pointer_field(2).is_null() - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_head(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_head( - &mut self, - value: crate::plugin_capnp::span::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_head(self) -> crate::plugin_capnp::span::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_head(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_positional( - self, - ) -> ::capnp::Result<::capnp::struct_list::Builder<'a, crate::plugin_capnp::value::Owned>> - { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_positional( - &mut self, - value: ::capnp::struct_list::Reader<'a, crate::plugin_capnp::value::Owned>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_positional( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::value::Owned> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(1), - size, - ) - } - #[inline] - pub fn has_positional(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_named( - self, - ) -> ::capnp::Result< - crate::plugin_capnp::map::Builder< - 'a, - ::capnp::text::Owned, - crate::plugin_capnp::value::Owned, - >, - > { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_named( - &mut self, - value: crate::plugin_capnp::map::Reader< - '_, - ::capnp::text::Owned, - crate::plugin_capnp::value::Owned, - >, - ) -> ::capnp::Result<()> { - as ::capnp::traits::SetPointerBuilder>::set_pointer_builder( - self.builder.get_pointer_field(2), - value, - false, - ) - } - #[inline] - pub fn init_named( - self, - ) -> crate::plugin_capnp::map::Builder< - 'a, - ::capnp::text::Owned, - crate::plugin_capnp::value::Owned, - > { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(2), 0) - } - #[inline] - pub fn has_named(&self) -> bool { - !self.builder.get_pointer_field(2).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline { - pub fn get_head(&self) -> crate::plugin_capnp::span::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(0)) - } - pub fn get_named( - &self, - ) -> crate::plugin_capnp::map::Pipeline< - ::capnp::text::Owned, - crate::plugin_capnp::value::Owned, - > { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(2)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 3, - }; - pub const TYPE_ID: u64 = 0x84fb_ac77_3ee4_48a4; - } -} - -pub mod plugin_data { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_data(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_data(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_span(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_span(&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> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_data(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_data(&mut self, value: ::capnp::data::Reader<'_>) { - self.builder.get_pointer_field(0).set_data(value); - } - #[inline] - pub fn init_data(self, size: u32) -> ::capnp::data::Builder<'a> { - self.builder.get_pointer_field(0).init_data(size) - } - #[inline] - pub fn has_data(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_span(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_span( - &mut self, - value: crate::plugin_capnp::span::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_span(self) -> crate::plugin_capnp::span::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), 0) - } - #[inline] - pub fn has_span(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline { - pub fn get_span(&self) -> crate::plugin_capnp::span::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 2, - }; - pub const TYPE_ID: u64 = 0xe394_537e_5286_0449; - } -} - -pub mod call_input { - pub use self::Which::{PluginData, Value}; - - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn has_value(&self) -> bool { - if self.reader.get_data_field::(0) != 0 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn has_plugin_data(&self) -> bool { - if self.reader.get_data_field::(0) != 1 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.reader.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Value( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 1 => ::core::result::Result::Ok(PluginData( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn set_value( - &mut self, - value: crate::plugin_capnp::value::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 0); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_value(self) -> crate::plugin_capnp::value::Builder<'a> { - self.builder.set_data_field::(0, 0); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_value(&self) -> bool { - if self.builder.get_data_field::(0) != 0 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn set_plugin_data( - &mut self, - value: crate::plugin_capnp::plugin_data::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 1); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_plugin_data(self) -> crate::plugin_capnp::plugin_data::Builder<'a> { - self.builder.set_data_field::(0, 1); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_plugin_data(&self) -> bool { - if self.builder.get_data_field::(0) != 1 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.builder.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Value( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 1 => ::core::result::Result::Ok(PluginData( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline {} - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 1, - pointers: 1, - }; - pub const TYPE_ID: u64 = 0xe0a9_a296_3cb2_e15f; - } - pub enum Which { - Value(A0), - PluginData(A1), - } - pub type WhichReader<'a> = Which< - ::capnp::Result>, - ::capnp::Result>, - >; - pub type WhichBuilder<'a> = Which< - ::capnp::Result>, - ::capnp::Result>, - >; -} - -pub mod call_info { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_call(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_call(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_input(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_input(&self) -> bool { - !self.reader.get_pointer_field(2).is_null() - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_name(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(0).set_text(value); - } - #[inline] - pub fn init_name(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(0).init_text(size) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_call(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_call( - &mut self, - value: crate::plugin_capnp::evaluated_call::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_call(self) -> crate::plugin_capnp::evaluated_call::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(1), 0) - } - #[inline] - pub fn has_call(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_input(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_input( - &mut self, - value: crate::plugin_capnp::call_input::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(2), - value, - false, - ) - } - #[inline] - pub fn init_input(self) -> crate::plugin_capnp::call_input::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(2), 0) - } - #[inline] - pub fn has_input(&self) -> bool { - !self.builder.get_pointer_field(2).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline { - pub fn get_call(&self) -> crate::plugin_capnp::evaluated_call::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1)) - } - pub fn get_input(&self) -> crate::plugin_capnp::call_input::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(2)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 3, - }; - pub const TYPE_ID: u64 = 0x8e03_127e_9170_7d6a; - } -} - -pub mod plugin_call { - pub use self::Which::{CallInfo, CollapseCustomValue, Signature}; - - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn has_call_info(&self) -> bool { - if self.reader.get_data_field::(0) != 1 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn has_collapse_custom_value(&self) -> bool { - if self.reader.get_data_field::(0) != 2 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.reader.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Signature(())), - 1 => ::core::result::Result::Ok(CallInfo( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 2 => ::core::result::Result::Ok(CollapseCustomValue( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn set_signature(&mut self, _value: ()) { - self.builder.set_data_field::(0, 0); - } - #[inline] - pub fn set_call_info( - &mut self, - value: crate::plugin_capnp::call_info::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 1); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_call_info(self) -> crate::plugin_capnp::call_info::Builder<'a> { - self.builder.set_data_field::(0, 1); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_call_info(&self) -> bool { - if self.builder.get_data_field::(0) != 1 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn set_collapse_custom_value( - &mut self, - value: crate::plugin_capnp::plugin_data::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 2); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_collapse_custom_value(self) -> crate::plugin_capnp::plugin_data::Builder<'a> { - self.builder.set_data_field::(0, 2); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_collapse_custom_value(&self) -> bool { - if self.builder.get_data_field::(0) != 2 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.builder.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Signature(())), - 1 => ::core::result::Result::Ok(CallInfo( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 2 => ::core::result::Result::Ok(CollapseCustomValue( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline {} - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 1, - pointers: 1, - }; - pub const TYPE_ID: u64 = 0xde86_64b2_7f80_4db1; - } - pub enum Which { - Signature(()), - CallInfo(A0), - CollapseCustomValue(A1), - } - pub type WhichReader<'a> = Which< - ::capnp::Result>, - ::capnp::Result>, - >; - pub type WhichBuilder<'a> = Which< - ::capnp::Result>, - ::capnp::Result>, - >; -} - -pub mod plugin_response { - pub use self::Which::{Error, PluginData, Signature, Value}; - - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn has_error(&self) -> bool { - if self.reader.get_data_field::(0) != 0 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn has_signature(&self) -> bool { - if self.reader.get_data_field::(0) != 1 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn has_value(&self) -> bool { - if self.reader.get_data_field::(0) != 2 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn has_plugin_data(&self) -> bool { - if self.reader.get_data_field::(0) != 3 { - return false; - } - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.reader.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Error( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 1 => ::core::result::Result::Ok(Signature( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 2 => ::core::result::Result::Ok(Value( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 3 => ::core::result::Result::Ok(PluginData( - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn set_error( - &mut self, - value: crate::plugin_capnp::labeled_error::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 0); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_error(self) -> crate::plugin_capnp::labeled_error::Builder<'a> { - self.builder.set_data_field::(0, 0); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_error(&self) -> bool { - if self.builder.get_data_field::(0) != 0 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn set_signature( - &mut self, - value: ::capnp::struct_list::Reader<'a, crate::plugin_capnp::signature::Owned>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 1); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_signature( - self, - size: u32, - ) -> ::capnp::struct_list::Builder<'a, crate::plugin_capnp::signature::Owned> { - self.builder.set_data_field::(0, 1); - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(0), - size, - ) - } - #[inline] - pub fn has_signature(&self) -> bool { - if self.builder.get_data_field::(0) != 1 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn set_value( - &mut self, - value: crate::plugin_capnp::value::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 2); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_value(self) -> crate::plugin_capnp::value::Builder<'a> { - self.builder.set_data_field::(0, 2); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_value(&self) -> bool { - if self.builder.get_data_field::(0) != 2 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn set_plugin_data( - &mut self, - value: crate::plugin_capnp::plugin_response::plugin_data_response::Reader<'_>, - ) -> ::capnp::Result<()> { - self.builder.set_data_field::(0, 3); - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(0), - value, - false, - ) - } - #[inline] - pub fn init_plugin_data( - self, - ) -> crate::plugin_capnp::plugin_response::plugin_data_response::Builder<'a> { - self.builder.set_data_field::(0, 3); - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(0), 0) - } - #[inline] - pub fn has_plugin_data(&self) -> bool { - if self.builder.get_data_field::(0) != 3 { - return false; - } - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn which(self) -> ::core::result::Result, ::capnp::NotInSchema> { - match self.builder.get_data_field::(0) { - 0 => ::core::result::Result::Ok(Error( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 1 => ::core::result::Result::Ok(Signature( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 2 => ::core::result::Result::Ok(Value( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - 3 => ::core::result::Result::Ok(PluginData( - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ), - )), - x => ::core::result::Result::Err(::capnp::NotInSchema(x)), - } - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline {} - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 1, - pointers: 1, - }; - pub const TYPE_ID: u64 = 0xb9ba_b3c7_9388_b7db; - } - pub enum Which { - Error(A0), - Signature(A1), - Value(A2), - PluginData(A3), - } - pub type WhichReader<'a> = Which< - ::capnp::Result>, - ::capnp::Result<::capnp::struct_list::Reader<'a, crate::plugin_capnp::signature::Owned>>, - ::capnp::Result>, - ::capnp::Result>, - >; - pub type WhichBuilder<'a> = Which< - ::capnp::Result>, - ::capnp::Result<::capnp::struct_list::Builder<'a, crate::plugin_capnp::signature::Owned>>, - ::capnp::Result>, - ::capnp::Result>, - >; - - pub mod plugin_data_response { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_data(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_data(&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> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_name(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_name(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(0).set_text(value); - } - #[inline] - pub fn init_name(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(0).init_text(size) - } - #[inline] - pub fn has_name(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_data( - self, - ) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_data( - &mut self, - value: crate::plugin_capnp::plugin_data::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(1), - value, - false, - ) - } - #[inline] - pub fn init_data(self) -> crate::plugin_capnp::plugin_data::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer( - self.builder.get_pointer_field(1), - 0, - ) - } - #[inline] - pub fn has_data(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline { - pub fn get_data(&self) -> crate::plugin_capnp::plugin_data::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(1)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 2, - }; - pub const TYPE_ID: u64 = 0xa0e9_dd1c_d7fe_17a7; - } - } -} - -pub mod labeled_error { - #[derive(Copy, Clone)] - pub struct Owned(()); - impl<'a> ::capnp::traits::Owned<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl<'a> ::capnp::traits::OwnedStruct<'a> for Owned { - type Reader = Reader<'a>; - type Builder = Builder<'a>; - } - impl ::capnp::traits::Pipelined for Owned { - type Pipeline = Pipeline; - } - - #[derive(Clone, Copy)] - pub struct Reader<'a> { - reader: ::capnp::private::layout::StructReader<'a>, - } - - impl<'a> ::capnp::traits::HasTypeId for Reader<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructReader<'a> for Reader<'a> { - fn new(reader: ::capnp::private::layout::StructReader<'a>) -> Reader<'a> { - Reader { reader } - } - } - - 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(::capnp::traits::FromStructReader::new( - reader.get_struct(default)?, - )) - } - } - - 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<'_> { - Reader { ..*self } - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.reader.total_size() - } - #[inline] - pub fn get_label(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_label(&self) -> bool { - !self.reader.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_msg(self) -> ::capnp::Result<::capnp::text::Reader<'a>> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_msg(&self) -> bool { - !self.reader.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_span(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerReader::get_from_pointer( - &self.reader.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn has_span(&self) -> bool { - !self.reader.get_pointer_field(2).is_null() - } - } - - pub struct Builder<'a> { - builder: ::capnp::private::layout::StructBuilder<'a>, - } - impl<'a> ::capnp::traits::HasStructSize for Builder<'a> { - #[inline] - fn struct_size() -> ::capnp::private::layout::StructSize { - _private::STRUCT_SIZE - } - } - impl<'a> ::capnp::traits::HasTypeId for Builder<'a> { - #[inline] - fn type_id() -> u64 { - _private::TYPE_ID - } - } - impl<'a> ::capnp::traits::FromStructBuilder<'a> for Builder<'a> { - fn new(builder: ::capnp::private::layout::StructBuilder<'a>) -> Builder<'a> { - Builder { builder } - } - } - - 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, - ) -> Builder<'a> { - ::capnp::traits::FromStructBuilder::new(builder.init_struct(_private::STRUCT_SIZE)) - } - fn get_from_pointer( - builder: ::capnp::private::layout::PointerBuilder<'a>, - default: ::core::option::Option<&'a [capnp::Word]>, - ) -> ::capnp::Result> { - ::core::result::Result::Ok(::capnp::traits::FromStructBuilder::new( - builder.get_struct(_private::STRUCT_SIZE, default)?, - )) - } - } - - impl<'a> ::capnp::traits::SetPointerBuilder for Reader<'a> { - fn set_pointer_builder<'b>( - pointer: ::capnp::private::layout::PointerBuilder<'b>, - value: Reader<'a>, - canonicalize: bool, - ) -> ::capnp::Result<()> { - pointer.set_struct(&value.reader, canonicalize) - } - } - - impl<'a> Builder<'a> { - pub fn into_reader(self) -> Reader<'a> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - pub fn reborrow(&mut self) -> Builder<'_> { - Builder { ..*self } - } - pub fn reborrow_as_reader(&self) -> Reader<'_> { - ::capnp::traits::FromStructReader::new(self.builder.into_reader()) - } - - pub fn total_size(&self) -> ::capnp::Result<::capnp::MessageSize> { - self.builder.into_reader().total_size() - } - #[inline] - pub fn get_label(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(0), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_label(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(0).set_text(value); - } - #[inline] - pub fn init_label(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(0).init_text(size) - } - #[inline] - pub fn has_label(&self) -> bool { - !self.builder.get_pointer_field(0).is_null() - } - #[inline] - pub fn get_msg(self) -> ::capnp::Result<::capnp::text::Builder<'a>> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(1), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_msg(&mut self, value: ::capnp::text::Reader<'_>) { - self.builder.get_pointer_field(1).set_text(value); - } - #[inline] - pub fn init_msg(self, size: u32) -> ::capnp::text::Builder<'a> { - self.builder.get_pointer_field(1).init_text(size) - } - #[inline] - pub fn has_msg(&self) -> bool { - !self.builder.get_pointer_field(1).is_null() - } - #[inline] - pub fn get_span(self) -> ::capnp::Result> { - ::capnp::traits::FromPointerBuilder::get_from_pointer( - self.builder.get_pointer_field(2), - ::core::option::Option::None, - ) - } - #[inline] - pub fn set_span( - &mut self, - value: crate::plugin_capnp::span::Reader<'_>, - ) -> ::capnp::Result<()> { - ::capnp::traits::SetPointerBuilder::set_pointer_builder( - self.builder.get_pointer_field(2), - value, - false, - ) - } - #[inline] - pub fn init_span(self) -> crate::plugin_capnp::span::Builder<'a> { - ::capnp::traits::FromPointerBuilder::init_pointer(self.builder.get_pointer_field(2), 0) - } - #[inline] - pub fn has_span(&self) -> bool { - !self.builder.get_pointer_field(2).is_null() - } - } - - pub struct Pipeline { - _typeless: ::capnp::any_pointer::Pipeline, - } - impl ::capnp::capability::FromTypelessPipeline for Pipeline { - fn new(typeless: ::capnp::any_pointer::Pipeline) -> Pipeline { - Pipeline { - _typeless: typeless, - } - } - } - impl Pipeline { - pub fn get_span(&self) -> crate::plugin_capnp::span::Pipeline { - ::capnp::capability::FromTypelessPipeline::new(self._typeless.get_pointer_field(2)) - } - } - mod _private { - use capnp::private::layout; - pub const STRUCT_SIZE: layout::StructSize = layout::StructSize { - data: 0, - pointers: 3, - }; - pub const TYPE_ID: u64 = 0x94d1_6904_99e7_04fe; - } -} From f46962d236fa42ce61002f45b46941e5d7263c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= Date: Sun, 4 Sep 2022 18:36:42 +0300 Subject: [PATCH 2/4] Fix scoped `overlay use` not finding a module (#6474) * Add source-env test for dynamic path * Use correct module ID for env overlay imports * Remove parser check from "overlay list" It would cause unnecessary errors from some inner scope if some overlay module was also defined in some inner scope. * Restore Cargo.lock back * Remove comments --- .../src/core_commands/overlay/list.rs | 28 +--- .../src/core_commands/overlay/use_.rs | 147 +++++++++--------- crates/nu-command/src/formats/from/nuon.rs | 6 + .../nu-command/tests/commands/source_env.rs | 14 ++ crates/nu-engine/src/eval.rs | 9 ++ crates/nu-parser/src/flatten.rs | 3 + crates/nu-parser/src/parse_keywords.rs | 86 ++++++---- crates/nu-parser/src/parser.rs | 1 + crates/nu-protocol/src/ast/call.rs | 4 + crates/nu-protocol/src/ast/expr.rs | 1 + crates/nu-protocol/src/ast/expression.rs | 3 + tests/overlays/mod.rs | 35 +++-- 12 files changed, 198 insertions(+), 139 deletions(-) diff --git a/crates/nu-command/src/core_commands/overlay/list.rs b/crates/nu-command/src/core_commands/overlay/list.rs index 6464efdfbf..883cec5774 100644 --- a/crates/nu-command/src/core_commands/overlay/list.rs +++ b/crates/nu-command/src/core_commands/overlay/list.rs @@ -4,8 +4,6 @@ use nu_protocol::{ Category, Example, IntoPipelineData, PipelineData, ShellError, Signature, Span, Value, }; -use log::trace; - #[derive(Clone)] pub struct OverlayList; @@ -28,41 +26,17 @@ impl Command for OverlayList { fn run( &self, - engine_state: &EngineState, + _engine_state: &EngineState, stack: &mut Stack, call: &Call, _input: PipelineData, ) -> Result { - let active_overlays_parser: Vec = engine_state - .active_overlay_names(&[]) - .iter() - .map(|s| Value::string(String::from_utf8_lossy(s), call.head)) - .collect(); - let active_overlays_engine: Vec = stack .active_overlays .iter() .map(|s| Value::string(s, call.head)) .collect(); - // Check if the overlays in the engine match the overlays in the parser - if (active_overlays_parser.len() != active_overlays_engine.len()) - || active_overlays_parser - .iter() - .zip(active_overlays_engine.iter()) - .any(|(op, oe)| op != oe) - { - trace!("parser overlays: {:?}", active_overlays_parser); - trace!("engine overlays: {:?}", active_overlays_engine); - - return Err(ShellError::NushellFailedSpannedHelp( - "Overlay mismatch".into(), - "Active overlays do not match between the engine and the parser.".into(), - call.head, - "Run Nushell with --log-level=trace to see what went wrong.".into(), - )); - } - Ok(Value::List { vals: active_overlays_engine, span: call.head, diff --git a/crates/nu-command/src/core_commands/overlay/use_.rs b/crates/nu-command/src/core_commands/overlay/use_.rs index e8f617b58f..4793cd0195 100644 --- a/crates/nu-command/src/core_commands/overlay/use_.rs +++ b/crates/nu-command/src/core_commands/overlay/use_.rs @@ -1,5 +1,5 @@ use nu_engine::{eval_block, find_in_dirs_env, redirect_env, CallExt}; -use nu_protocol::ast::Call; +use nu_protocol::ast::{Call, Expr}; use nu_protocol::engine::{Command, EngineState, Stack}; use nu_protocol::{ Category, Example, PipelineData, ShellError, Signature, Spanned, SyntaxShape, Value, @@ -57,12 +57,29 @@ impl Command for OverlayUse { ) -> Result { let name_arg: Spanned = call.req(engine_state, caller_stack, 0)?; - let (overlay_name, overlay_name_span) = if let Some(kw_expression) = call.positional_nth(1) - { + let origin_module_id = if let Some(overlay_expr) = call.positional_nth(0) { + if let Expr::Overlay(module_id) = overlay_expr.expr { + module_id + } else { + return Err(ShellError::NushellFailedSpanned( + "Not an overlay".to_string(), + "requires an overlay (path or a string)".to_string(), + overlay_expr.span, + )); + } + } else { + return Err(ShellError::NushellFailedSpanned( + "Missing positional".to_string(), + "missing required overlay".to_string(), + call.head, + )); + }; + + let overlay_name = if let Some(kw_expression) = call.positional_nth(1) { // If renamed via the 'as' keyword, use the new name as the overlay name if let Some(new_name_expression) = kw_expression.as_keyword() { if let Some(new_name) = new_name_expression.as_string() { - (new_name, new_name_expression.span) + new_name } else { return Err(ShellError::NushellFailedSpanned( "Wrong keyword type".to_string(), @@ -81,10 +98,10 @@ impl Command for OverlayUse { .find_overlay(name_arg.item.as_bytes()) .is_some() { - (name_arg.item.clone(), name_arg.span) + name_arg.item.clone() } else if let Some(os_str) = Path::new(&name_arg.item).file_stem() { if let Some(name) = os_str.to_str() { - (name.to_string(), name_arg.span) + name.to_string() } else { return Err(ShellError::NonUtf8(name_arg.span)); } @@ -95,87 +112,73 @@ impl Command for OverlayUse { )); }; - if let Some(overlay_id) = engine_state.find_overlay(overlay_name.as_bytes()) { - let old_module_id = engine_state.get_overlay(overlay_id).origin; + caller_stack.add_overlay(overlay_name); - caller_stack.add_overlay(overlay_name.clone()); + if let Some(module_id) = origin_module_id { + // Add environment variables only if: + // a) adding a new overlay + // b) refreshing an active overlay (the origin module changed) + let module = engine_state.get_module(module_id); - if let Some(new_module_id) = engine_state.find_module(overlay_name.as_bytes(), &[]) { - if !caller_stack.has_env_overlay(&overlay_name, engine_state) - || (old_module_id != new_module_id) - { - // Add environment variables only if: - // a) adding a new overlay - // b) refreshing an active overlay (the origin module changed) - let module = engine_state.get_module(new_module_id); + for (name, block_id) in module.env_vars() { + let name = if let Ok(s) = String::from_utf8(name.clone()) { + s + } else { + return Err(ShellError::NonUtf8(call.head)); + }; - for (name, block_id) in module.env_vars() { - let name = if let Ok(s) = String::from_utf8(name.clone()) { - s - } else { - return Err(ShellError::NonUtf8(call.head)); - }; + let block = engine_state.get_block(block_id); - let block = engine_state.get_block(block_id); + let val = eval_block( + engine_state, + caller_stack, + block, + PipelineData::new(call.head), + false, + true, + )? + .into_value(call.head); - let val = eval_block( - engine_state, - caller_stack, - block, - PipelineData::new(call.head), - false, - true, - )? - .into_value(call.head); + caller_stack.add_env_var(name, val); + } - caller_stack.add_env_var(name, val); - } + // Evaluate the export-env block (if any) and keep its environment + if let Some(block_id) = module.env_block { + let maybe_path = find_in_dirs_env(&name_arg.item, engine_state, caller_stack)?; - // Evaluate the export-env block (if any) and keep its environment - if let Some(block_id) = module.env_block { - let maybe_path = - find_in_dirs_env(&name_arg.item, engine_state, caller_stack)?; + if let Some(path) = &maybe_path { + // Set the currently evaluated directory, if the argument is a valid path + let mut parent = path.clone(); + parent.pop(); - if let Some(path) = &maybe_path { - // Set the currently evaluated directory, if the argument is a valid path - let mut parent = path.clone(); - parent.pop(); + let file_pwd = Value::String { + val: parent.to_string_lossy().to_string(), + span: call.head, + }; - let file_pwd = Value::String { - val: parent.to_string_lossy().to_string(), - span: call.head, - }; + caller_stack.add_env_var("FILE_PWD".to_string(), file_pwd); + } - caller_stack.add_env_var("FILE_PWD".to_string(), file_pwd); - } + let block = engine_state.get_block(block_id); + let mut callee_stack = caller_stack.gather_captures(&block.captures); - let block = engine_state.get_block(block_id); - let mut callee_stack = caller_stack.gather_captures(&block.captures); + let _ = eval_block( + engine_state, + &mut callee_stack, + block, + input, + call.redirect_stdout, + call.redirect_stderr, + ); - let _ = eval_block( - engine_state, - &mut callee_stack, - block, - input, - call.redirect_stdout, - call.redirect_stderr, - ); + // Merge the block's environment to the current stack + redirect_env(engine_state, caller_stack, &callee_stack); - // Merge the block's environment to the current stack - redirect_env(engine_state, caller_stack, &callee_stack); - - if maybe_path.is_some() { - // Remove the file-relative PWD, if the argument is a valid path - caller_stack.remove_env_var(engine_state, "FILE_PWD"); - } - } + if maybe_path.is_some() { + // Remove the file-relative PWD, if the argument is a valid path + caller_stack.remove_env_var(engine_state, "FILE_PWD"); } } - } else { - return Err(ShellError::OverlayNotFoundAtRuntime( - overlay_name, - overlay_name_span, - )); } Ok(PipelineData::new(call.head)) diff --git a/crates/nu-command/src/formats/from/nuon.rs b/crates/nu-command/src/formats/from/nuon.rs index 1f26de1366..5c64603c55 100644 --- a/crates/nu-command/src/formats/from/nuon.rs +++ b/crates/nu-command/src/formats/from/nuon.rs @@ -265,6 +265,12 @@ fn convert_to_value( "imports not supported in nuon".into(), expr.span, )), + Expr::Overlay(..) => Err(ShellError::OutsideSpannedLabeledError( + original_text.to_string(), + "Error when loading".into(), + "overlays not supported in nuon".into(), + expr.span, + )), Expr::Int(val) => Ok(Value::Int { val, span }), Expr::Keyword(kw, ..) => Err(ShellError::OutsideSpannedLabeledError( original_text.to_string(), diff --git a/crates/nu-command/tests/commands/source_env.rs b/crates/nu-command/tests/commands/source_env.rs index 571a47e045..9b6ca50d0a 100644 --- a/crates/nu-command/tests/commands/source_env.rs +++ b/crates/nu-command/tests/commands/source_env.rs @@ -141,3 +141,17 @@ fn sources_unicode_file_in_unicode_dir_with_spaces_2() { fn sources_unicode_file_in_non_utf8_dir() { // How do I create non-UTF-8 path??? } + +#[test] +fn can_source_dynamic_path() { + Playground::setup("can_source_dynamic_path", |dirs, sandbox| { + let foo_file = "foo.nu"; + + sandbox.with_files(vec![FileWithContent(&foo_file, "echo foo")]); + + let cmd = format!("let file = `{}`; source-env $file", foo_file); + let actual = nu!(cwd: dirs.test(), &cmd); + + assert_eq!(actual.out, "foo"); + }); +} diff --git a/crates/nu-engine/src/eval.rs b/crates/nu-engine/src/eval.rs index f3e9b2c14f..c53da6af3f 100644 --- a/crates/nu-engine/src/eval.rs +++ b/crates/nu-engine/src/eval.rs @@ -355,6 +355,15 @@ pub fn eval_expression( value.follow_cell_path(&cell_path.tail, false) } Expr::ImportPattern(_) => Ok(Value::Nothing { span: expr.span }), + Expr::Overlay(_) => { + let name = + String::from_utf8_lossy(engine_state.get_span_contents(&expr.span)).to_string(); + + Ok(Value::String { + val: name, + span: expr.span, + }) + } Expr::Call(call) => { // FIXME: protect this collect with ctrl-c Ok( diff --git a/crates/nu-parser/src/flatten.rs b/crates/nu-parser/src/flatten.rs index bdc8692e47..dddc789828 100644 --- a/crates/nu-parser/src/flatten.rs +++ b/crates/nu-parser/src/flatten.rs @@ -260,6 +260,9 @@ pub fn flatten_expression( output } + Expr::Overlay(_) => { + vec![(expr.span, FlatShape::String)] + } Expr::Range(from, next, to, op) => { let mut output = vec![]; if let Some(f) = from { diff --git a/crates/nu-parser/src/parse_keywords.rs b/crates/nu-parser/src/parse_keywords.rs index 50ee95fd1f..a84c2bc67f 100644 --- a/crates/nu-parser/src/parse_keywords.rs +++ b/crates/nu-parser/src/parse_keywords.rs @@ -2422,7 +2422,7 @@ pub fn parse_overlay_use( let has_prefix = call.has_flag("prefix"); let pipeline = Pipeline::from_vec(vec![Expression { - expr: Expr::Call(call), + expr: Expr::Call(call.clone()), span: span(spans), ty: Type::Any, custom_completion: None, @@ -2432,7 +2432,14 @@ pub fn parse_overlay_use( let mut error = None; - let result = if let Some(overlay_frame) = working_set.find_overlay(overlay_name.as_bytes()) { + let (final_overlay_name, origin_module, origin_module_id, is_module_updated) = if let Some( + overlay_frame, + ) = + working_set.find_overlay(overlay_name.as_bytes()) + { + // Activate existing overlay + + // First, check for errors if has_prefix && !overlay_frame.prefixed { return ( pipeline, @@ -2467,22 +2474,22 @@ pub fn parse_overlay_use( } } - // Activate existing overlay let module_id = overlay_frame.origin; if let Some(new_module_id) = working_set.find_module(overlay_name.as_bytes()) { if module_id == new_module_id { - Some((overlay_name, Module::new(), module_id)) + (overlay_name, Module::new(), module_id, false) } else { // The origin module of an overlay changed => update it - Some(( + ( overlay_name, working_set.get_module(new_module_id).clone(), new_module_id, - )) + true, + ) } } else { - Some((overlay_name, Module::new(), module_id)) + (overlay_name, Module::new(), module_id, true) } } else { // Create a new overlay from a module @@ -2490,11 +2497,12 @@ pub fn parse_overlay_use( // the name is a module working_set.find_module(overlay_name.as_bytes()) { - Some(( + ( new_name.map(|spanned| spanned.item).unwrap_or(overlay_name), working_set.get_module(module_id).clone(), module_id, - )) + true, + ) } else { // try if the name is a file if let Ok(module_filename) = @@ -2541,11 +2549,12 @@ pub fn parse_overlay_use( let _ = working_set.add_block(block); let module_id = working_set.add_module(&overlay_name, module.clone()); - Some(( + ( new_name.map(|spanned| spanned.item).unwrap_or(overlay_name), module, module_id, - )) + true, + ) } else { return ( pipeline, @@ -2553,8 +2562,10 @@ pub fn parse_overlay_use( ); } } else { - error = error.or(Some(ParseError::ModuleOrOverlayNotFound(overlay_name_span))); - None + return ( + pipeline, + Some(ParseError::ModuleOrOverlayNotFound(overlay_name_span)), + ); } } else { return (garbage_pipeline(spans), Some(ParseError::NonUtf8(spans[1]))); @@ -2562,24 +2573,39 @@ pub fn parse_overlay_use( } }; - if let Some((name, module, module_id)) = result { - let (decls_to_lay, aliases_to_lay) = if has_prefix { - ( - module.decls_with_head(name.as_bytes()), - module.aliases_with_head(name.as_bytes()), - ) - } else { - (module.decls(), module.aliases()) - }; + let (decls_to_lay, aliases_to_lay) = if has_prefix { + ( + origin_module.decls_with_head(final_overlay_name.as_bytes()), + origin_module.aliases_with_head(final_overlay_name.as_bytes()), + ) + } else { + (origin_module.decls(), origin_module.aliases()) + }; - working_set.add_overlay( - name.as_bytes().to_vec(), - module_id, - decls_to_lay, - aliases_to_lay, - has_prefix, - ); - } + working_set.add_overlay( + final_overlay_name.as_bytes().to_vec(), + origin_module_id, + decls_to_lay, + aliases_to_lay, + has_prefix, + ); + + // Change the call argument to include the Overlay expression with the module ID + let mut call = call; + if let Some(overlay_expr) = call.positional_nth_mut(0) { + overlay_expr.expr = Expr::Overlay(if is_module_updated { + Some(origin_module_id) + } else { + None + }); + } // no need to check for else since it was already checked + + let pipeline = Pipeline::from_vec(vec![Expression { + expr: Expr::Call(call), + span: span(spans), + ty: Type::Any, + custom_completion: None, + }]); (pipeline, error) } diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index 799e046087..177fa2f1e1 100644 --- a/crates/nu-parser/src/parser.rs +++ b/crates/nu-parser/src/parser.rs @@ -5221,6 +5221,7 @@ pub fn discover_captures_in_expr( output.extend(&result); } Expr::ImportPattern(_) => {} + Expr::Overlay(_) => {} Expr::Garbage => {} Expr::Nothing => {} Expr::GlobPattern(_) => {} diff --git a/crates/nu-protocol/src/ast/call.rs b/crates/nu-protocol/src/ast/call.rs index 5398207ff8..897f4be892 100644 --- a/crates/nu-protocol/src/ast/call.rs +++ b/crates/nu-protocol/src/ast/call.rs @@ -82,6 +82,10 @@ impl Call { self.positional_iter().nth(i) } + pub fn positional_nth_mut(&mut self, i: usize) -> Option<&mut Expression> { + self.positional_iter_mut().nth(i) + } + pub fn positional_len(&self) -> usize { self.positional_iter().count() } diff --git a/crates/nu-protocol/src/ast/expr.rs b/crates/nu-protocol/src/ast/expr.rs index d3640aff45..63e3907659 100644 --- a/crates/nu-protocol/src/ast/expr.rs +++ b/crates/nu-protocol/src/ast/expr.rs @@ -39,6 +39,7 @@ pub enum Expr { CellPath(CellPath), FullCellPath(Box), ImportPattern(ImportPattern), + Overlay(Option), // block ID of the overlay's origin module Signature(Box), StringInterpolation(Vec), Nothing, diff --git a/crates/nu-protocol/src/ast/expression.rs b/crates/nu-protocol/src/ast/expression.rs index 121a4337ee..f1803ac2f9 100644 --- a/crates/nu-protocol/src/ast/expression.rs +++ b/crates/nu-protocol/src/ast/expression.rs @@ -169,6 +169,7 @@ impl Expression { false } Expr::ImportPattern(_) => false, + Expr::Overlay(_) => false, Expr::Filepath(_) => false, Expr::Directory(_) => false, Expr::Float(_) => false, @@ -337,6 +338,7 @@ impl Expression { .replace_in_variable(working_set, new_var_id); } Expr::ImportPattern(_) => {} + Expr::Overlay(_) => {} Expr::Garbage => {} Expr::Nothing => {} Expr::GlobPattern(_) => {} @@ -485,6 +487,7 @@ impl Expression { .replace_span(working_set, replaced, new_span); } Expr::ImportPattern(_) => {} + Expr::Overlay(_) => {} Expr::Garbage => {} Expr::Nothing => {} Expr::GlobPattern(_) => {} diff --git a/tests/overlays/mod.rs b/tests/overlays/mod.rs index 82dbd54ff8..3bc33371d9 100644 --- a/tests/overlays/mod.rs +++ b/tests/overlays/mod.rs @@ -238,6 +238,24 @@ fn update_overlay_from_module_env() { assert_eq!(actual_repl.out, "bar"); } +#[test] +fn overlay_use_do_not_eval_twice() { + let inp = &[ + r#"module spam { export env FOO { "foo" } }"#, + r#"overlay use spam"#, + r#"let-env FOO = "bar""#, + r#"overlay hide spam"#, + r#"overlay use spam"#, + r#"$env.FOO"#, + ]; + + let actual = nu!(cwd: "tests/overlays", pipeline(&inp.join("; "))); + let actual_repl = nu!(cwd: "tests/overlays", nu_repl_code(inp)); + + assert_eq!(actual.out, "bar"); + assert_eq!(actual_repl.out, "bar"); +} + #[test] fn remove_overlay() { let inp = &[ @@ -843,23 +861,20 @@ fn overlay_use_dont_cd_overlay() { }) } -#[ignore] #[test] -fn overlay_use_find_module_scoped() { +fn overlay_use_find_scoped_module() { Playground::setup("overlay_use_find_module_scoped", |dirs, _| { - let inp = &[r#" + let inp = r#" do { - module spam { export def foo [] { 'foo' } } + module spam { } overlay use spam - foo + overlay list | last } - "#]; + "#; - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - let actual_repl = nu!(cwd: "tests/overlays", nu_repl_code(inp)); + let actual = nu!(cwd: dirs.test(), inp); - assert_eq!(actual.out, "foo"); - assert_eq!(actual_repl.out, "foo"); + assert_eq!(actual.out, "spam"); }) } From 3ed3712fdc2fbaf8ed0184e3a80539709e94e2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= Date: Sun, 4 Sep 2022 20:32:06 +0300 Subject: [PATCH 3/4] Fix overlays not preserving hidden env vars (#6475) * Fix overlays not preserving hidden env vars * Add a few more test * Add one more test of resetting hidden env vars * Move removed source-env tests --- .../src/core_commands/overlay/use_.rs | 1 + .../nu-command/tests/commands/source_env.rs | 152 +++++++++++++++++- crates/nu-protocol/src/engine/stack.rs | 2 - tests/overlays/mod.rs | 100 ++++++++++++ tests/shell/environment/mod.rs | 1 - tests/shell/environment/source_env.rs | 152 ------------------ 6 files changed, 252 insertions(+), 156 deletions(-) delete mode 100644 tests/shell/environment/source_env.rs diff --git a/crates/nu-command/src/core_commands/overlay/use_.rs b/crates/nu-command/src/core_commands/overlay/use_.rs index 4793cd0195..816b3cc1aa 100644 --- a/crates/nu-command/src/core_commands/overlay/use_.rs +++ b/crates/nu-command/src/core_commands/overlay/use_.rs @@ -118,6 +118,7 @@ impl Command for OverlayUse { // Add environment variables only if: // a) adding a new overlay // b) refreshing an active overlay (the origin module changed) + let module = engine_state.get_module(module_id); for (name, block_id) in module.env_vars() { diff --git a/crates/nu-command/tests/commands/source_env.rs b/crates/nu-command/tests/commands/source_env.rs index 9b6ca50d0a..c4ab9fceea 100644 --- a/crates/nu-command/tests/commands/source_env.rs +++ b/crates/nu-command/tests/commands/source_env.rs @@ -1,4 +1,5 @@ -use nu_test_support::fs::{AbsolutePath, Stub::FileWithContent}; +use nu_test_support::fs::AbsolutePath; +use nu_test_support::fs::Stub::{FileWithContent, FileWithContentToBeTrimmed}; use nu_test_support::nu; use nu_test_support::pipeline; use nu_test_support::playground::Playground; @@ -155,3 +156,152 @@ fn can_source_dynamic_path() { assert_eq!(actual.out, "foo"); }); } + +#[test] +fn source_env_eval_export_env() { + Playground::setup("source_env_eval_export_env", |dirs, sandbox| { + sandbox.with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + export-env { let-env FOO = 'foo' } + "#, + )]); + + let inp = &[r#"source-env spam.nu"#, r#"$env.FOO"#]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert_eq!(actual.out, "foo"); + }) +} + +#[test] +fn source_env_eval_export_env_hide() { + Playground::setup("source_env_eval_export_env", |dirs, sandbox| { + sandbox.with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + export-env { hide-env FOO } + "#, + )]); + + let inp = &[ + r#"let-env FOO = 'foo'"#, + r#"source-env spam.nu"#, + r#"$env.FOO"#, + ]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert!(actual.err.contains("did you mean")); + }) +} + +#[test] +fn source_env_do_cd() { + Playground::setup("source_env_do_cd", |dirs, sandbox| { + sandbox + .mkdir("test1/test2") + .with_files(vec![FileWithContentToBeTrimmed( + "test1/test2/spam.nu", + r#" + cd test1/test2 + "#, + )]); + + let inp = &[ + r#"source-env test1/test2/spam.nu"#, + r#"$env.PWD | path basename"#, + ]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert_eq!(actual.out, "test2"); + }) +} + +#[test] +fn source_env_do_cd_file_relative() { + Playground::setup("source_env_do_cd_file_relative", |dirs, sandbox| { + sandbox + .mkdir("test1/test2") + .with_files(vec![FileWithContentToBeTrimmed( + "test1/test2/spam.nu", + r#" + cd ($env.FILE_PWD | path join '..') + "#, + )]); + + let inp = &[ + r#"source-env test1/test2/spam.nu"#, + r#"$env.PWD | path basename"#, + ]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert_eq!(actual.out, "test1"); + }) +} + +#[test] +fn source_env_dont_cd_overlay() { + Playground::setup("source_env_dont_cd_overlay", |dirs, sandbox| { + sandbox + .mkdir("test1/test2") + .with_files(vec![FileWithContentToBeTrimmed( + "test1/test2/spam.nu", + r#" + overlay new spam + cd test1/test2 + overlay hide spam + "#, + )]); + + let inp = &[ + r#"source-env test1/test2/spam.nu"#, + r#"$env.PWD | path basename"#, + ]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert_eq!(actual.out, "source_env_dont_cd_overlay"); + }) +} + +#[test] +fn source_env_nice_parse_error() { + Playground::setup("source_env_nice_parse_error", |dirs, sandbox| { + sandbox.with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + let x + "#, + )]); + + let inp = &[r#"source-env spam.nu"#]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert!(actual.err.contains("cannot parse this file")); + assert!(actual.err.contains("───")); + }) +} + +#[test] +fn source_env_nice_shell_error() { + Playground::setup("source_env_nice_shell_error", |dirs, sandbox| { + sandbox.with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + let-env FILE_PWD = 'foo' + "#, + )]); + + let inp = &[r#"source-env spam.nu"#]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert!(actual.err.contains("cannot evaluate this file")); + assert!(actual.err.contains("───")); + }) +} diff --git a/crates/nu-protocol/src/engine/stack.rs b/crates/nu-protocol/src/engine/stack.rs index 935669fcb9..d7f250b74a 100644 --- a/crates/nu-protocol/src/engine/stack.rs +++ b/crates/nu-protocol/src/engine/stack.rs @@ -379,8 +379,6 @@ impl Stack { } pub fn add_overlay(&mut self, name: String) { - self.env_hidden.remove(&name); - self.active_overlays.retain(|o| o != &name); self.active_overlays.push(name); } diff --git a/tests/overlays/mod.rs b/tests/overlays/mod.rs index 3bc33371d9..f51a14d631 100644 --- a/tests/overlays/mod.rs +++ b/tests/overlays/mod.rs @@ -878,3 +878,103 @@ fn overlay_use_find_scoped_module() { assert_eq!(actual.out, "spam"); }) } + +#[test] +fn overlay_preserve_hidden_env_1() { + let inp = &[ + r#"overlay new spam"#, + r#"let-env FOO = 'foo'"#, + r#"overlay new eggs"#, + r#"let-env FOO = 'bar'"#, + r#"hide-env FOO"#, + r#"overlay use eggs"#, + r#"$env.FOO"#, + ]; + + let actual = nu!(cwd: "tests/overlays", pipeline(&inp.join("; "))); + let actual_repl = nu!(cwd: "tests/overlays", nu_repl_code(inp)); + + assert_eq!(actual.out, "foo"); + assert_eq!(actual_repl.out, "foo"); +} + +#[test] +fn overlay_preserve_hidden_env_2() { + let inp = &[ + r#"overlay new spam"#, + r#"let-env FOO = 'foo'"#, + r#"overlay hide spam"#, + r#"overlay new eggs"#, + r#"let-env FOO = 'bar'"#, + r#"hide-env FOO"#, + r#"overlay hide eggs"#, + r#"overlay use spam"#, + r#"overlay use eggs"#, + r#"$env.FOO"#, + ]; + + let actual = nu!(cwd: "tests/overlays", pipeline(&inp.join("; "))); + let actual_repl = nu!(cwd: "tests/overlays", nu_repl_code(inp)); + + assert_eq!(actual.out, "foo"); + assert_eq!(actual_repl.out, "foo"); +} + +#[test] +fn overlay_reset_hidden_env() { + let inp = &[ + r#"overlay new spam"#, + r#"let-env FOO = 'foo'"#, + r#"overlay new eggs"#, + r#"let-env FOO = 'bar'"#, + r#"hide-env FOO"#, + r#"module eggs { export-env { let-env FOO = 'bar' } }"#, + r#"overlay use eggs"#, + r#"$env.FOO"#, + ]; + + let actual = nu!(cwd: "tests/overlays", pipeline(&inp.join("; "))); + let actual_repl = nu!(cwd: "tests/overlays", nu_repl_code(inp)); + + assert_eq!(actual.out, "bar"); + assert_eq!(actual_repl.out, "bar"); +} + +#[ignore = "TODO: For this to work, we'd need to make predecls respect overlays"] +#[test] +fn overlay_preserve_hidden_decl() { + let inp = &[ + r#"overlay new spam"#, + r#"def foo [] { 'foo' }"#, + r#"overlay new eggs"#, + r#"def foo [] { 'bar' }"#, + r#"hide foo"#, + r#"overlay use eggs"#, + r#"foo"#, + ]; + + let actual = nu!(cwd: "tests/overlays", pipeline(&inp.join("; "))); + let actual_repl = nu!(cwd: "tests/overlays", nu_repl_code(inp)); + + assert_eq!(actual.out, "foo"); + assert_eq!(actual_repl.out, "foo"); +} + +#[test] +fn overlay_preserve_hidden_alias() { + let inp = &[ + r#"overlay new spam"#, + r#"alias foo = 'foo'"#, + r#"overlay new eggs"#, + r#"alias foo = 'bar'"#, + r#"hide foo"#, + r#"overlay use eggs"#, + r#"foo"#, + ]; + + let actual = nu!(cwd: "tests/overlays", pipeline(&inp.join("; "))); + let actual_repl = nu!(cwd: "tests/overlays", nu_repl_code(inp)); + + assert_eq!(actual.out, "foo"); + assert_eq!(actual_repl.out, "foo"); +} diff --git a/tests/shell/environment/mod.rs b/tests/shell/environment/mod.rs index 919b5486d5..faf884f166 100644 --- a/tests/shell/environment/mod.rs +++ b/tests/shell/environment/mod.rs @@ -1,5 +1,4 @@ mod env; -mod source_env; // FIXME: nu_env tests depend on autoenv which hasn't been ported yet // mod nu_env; diff --git a/tests/shell/environment/source_env.rs b/tests/shell/environment/source_env.rs deleted file mode 100644 index 576b0a3181..0000000000 --- a/tests/shell/environment/source_env.rs +++ /dev/null @@ -1,152 +0,0 @@ -use nu_test_support::fs::Stub::FileWithContentToBeTrimmed; -use nu_test_support::playground::Playground; -use nu_test_support::{nu, pipeline}; - -#[test] -fn source_env_eval_export_env() { - Playground::setup("source_env_eval_export_env", |dirs, sandbox| { - sandbox.with_files(vec![FileWithContentToBeTrimmed( - "spam.nu", - r#" - export-env { let-env FOO = 'foo' } - "#, - )]); - - let inp = &[r#"source-env spam.nu"#, r#"$env.FOO"#]; - - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - - assert_eq!(actual.out, "foo"); - }) -} - -#[test] -fn source_env_eval_export_env_hide() { - Playground::setup("source_env_eval_export_env", |dirs, sandbox| { - sandbox.with_files(vec![FileWithContentToBeTrimmed( - "spam.nu", - r#" - export-env { hide-env FOO } - "#, - )]); - - let inp = &[ - r#"let-env FOO = 'foo'"#, - r#"source-env spam.nu"#, - r#"$env.FOO"#, - ]; - - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - - assert!(actual.err.contains("did you mean")); - }) -} - -#[test] -fn source_env_do_cd() { - Playground::setup("source_env_do_cd", |dirs, sandbox| { - sandbox - .mkdir("test1/test2") - .with_files(vec![FileWithContentToBeTrimmed( - "test1/test2/spam.nu", - r#" - cd test1/test2 - "#, - )]); - - let inp = &[ - r#"source-env test1/test2/spam.nu"#, - r#"$env.PWD | path basename"#, - ]; - - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - - assert_eq!(actual.out, "test2"); - }) -} - -#[test] -fn source_env_do_cd_file_relative() { - Playground::setup("source_env_do_cd_file_relative", |dirs, sandbox| { - sandbox - .mkdir("test1/test2") - .with_files(vec![FileWithContentToBeTrimmed( - "test1/test2/spam.nu", - r#" - cd ($env.FILE_PWD | path join '..') - "#, - )]); - - let inp = &[ - r#"source-env test1/test2/spam.nu"#, - r#"$env.PWD | path basename"#, - ]; - - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - - assert_eq!(actual.out, "test1"); - }) -} - -#[test] -fn source_env_dont_cd_overlay() { - Playground::setup("source_env_dont_cd_overlay", |dirs, sandbox| { - sandbox - .mkdir("test1/test2") - .with_files(vec![FileWithContentToBeTrimmed( - "test1/test2/spam.nu", - r#" - overlay new spam - cd test1/test2 - overlay hide spam - "#, - )]); - - let inp = &[ - r#"source-env test1/test2/spam.nu"#, - r#"$env.PWD | path basename"#, - ]; - - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - - assert_eq!(actual.out, "source_env_dont_cd_overlay"); - }) -} - -#[test] -fn source_env_nice_parse_error() { - Playground::setup("source_env_nice_parse_error", |dirs, sandbox| { - sandbox.with_files(vec![FileWithContentToBeTrimmed( - "spam.nu", - r#" - let x - "#, - )]); - - let inp = &[r#"source-env spam.nu"#]; - - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - - assert!(actual.err.contains("cannot parse this file")); - assert!(actual.err.contains("───")); - }) -} - -#[test] -fn source_env_nice_shell_error() { - Playground::setup("source_env_nice_shell_error", |dirs, sandbox| { - sandbox.with_files(vec![FileWithContentToBeTrimmed( - "spam.nu", - r#" - let-env FILE_PWD = 'foo' - "#, - )]); - - let inp = &[r#"source-env spam.nu"#]; - - let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); - - assert!(actual.err.contains("cannot evaluate this file")); - assert!(actual.err.contains("───")); - }) -} From 65327e0e7e7e44c0734e9af5058a8f3f017f2bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= Date: Sun, 4 Sep 2022 23:19:20 +0300 Subject: [PATCH 4/4] Disable cyclical module imports (#6477) --- crates/nu-parser/src/errors.rs | 5 + crates/nu-parser/src/parse_keywords.rs | 42 ++++++++- crates/nu-protocol/src/engine/engine_state.rs | 3 + tests/modules/mod.rs | 92 +++++++++++++++++++ 4 files changed, 140 insertions(+), 2 deletions(-) diff --git a/crates/nu-parser/src/errors.rs b/crates/nu-parser/src/errors.rs index 17782684d5..6e158d7b83 100644 --- a/crates/nu-parser/src/errors.rs +++ b/crates/nu-parser/src/errors.rs @@ -120,6 +120,10 @@ pub enum ParseError { )] ModuleNotFound(#[label = "module not found"] Span), + #[error("Cyclical module import.")] + #[diagnostic(code(nu::parser::cyclical_module_import), url(docsrs), help("{0}"))] + CyclicalModuleImport(String, #[label = "detected cyclical module import"] Span), + #[error("Active overlay not found.")] #[diagnostic(code(nu::parser::active_overlay_not_found), url(docsrs))] ActiveOverlayNotFound(#[label = "not an active overlay"] Span), @@ -341,6 +345,7 @@ impl ParseError { ParseError::VariableNotFound(s) => *s, ParseError::VariableNotValid(s) => *s, ParseError::ModuleNotFound(s) => *s, + ParseError::CyclicalModuleImport(_, s) => *s, ParseError::ModuleOrOverlayNotFound(s) => *s, ParseError::ActiveOverlayNotFound(s) => *s, ParseError::OverlayPrefixMismatch(_, _, s) => *s, diff --git a/crates/nu-parser/src/parse_keywords.rs b/crates/nu-parser/src/parse_keywords.rs index a84c2bc67f..0069e7e285 100644 --- a/crates/nu-parser/src/parse_keywords.rs +++ b/crates/nu-parser/src/parse_keywords.rs @@ -1660,8 +1660,8 @@ pub fn parse_use( if let Some(module_id) = working_set.find_module(&import_pattern.head.name) { (import_pattern, working_set.get_module(module_id).clone()) } else { - // TODO: Do not close over when loading module from file? // It could be a file + // TODO: Do not close over when loading module from file? let (module_filename, err) = unescape_unquote_string(&import_pattern.head.name, import_pattern.head.span); @@ -1670,6 +1670,37 @@ pub fn parse_use( if let Some(module_path) = find_in_dirs(&module_filename, working_set, &cwd, LIB_DIRS_ENV) { + if let Some(i) = working_set + .parsed_module_files + .iter() + .rposition(|p| p == &module_path) + { + let mut files: Vec = working_set + .parsed_module_files + .split_off(i) + .iter() + .map(|p| p.to_string_lossy().to_string()) + .collect(); + + files.push(module_path.to_string_lossy().to_string()); + + let msg = files.join("\nuses "); + + return ( + Pipeline::from_vec(vec![Expression { + expr: Expr::Call(call), + span: call_span, + ty: Type::Any, + custom_completion: None, + }]), + vec![], + Some(ParseError::CyclicalModuleImport( + msg, + import_pattern.head.span, + )), + ); + } + let module_name = if let Some(stem) = module_path.file_stem() { stem.to_string_lossy().to_string() } else { @@ -1690,7 +1721,7 @@ pub fn parse_use( working_set.add_file(module_filename, &contents); let span_end = working_set.next_span_start(); - // Change currently parsed directory + // Change the currently parsed directory let prev_currently_parsed_cwd = if let Some(parent) = module_path.parent() { let prev = working_set.currently_parsed_cwd.clone(); @@ -1701,6 +1732,10 @@ pub fn parse_use( working_set.currently_parsed_cwd.clone() }; + // Add the file to the stack of parsed module files + working_set.parsed_module_files.push(module_path); + + // Parse the module let (block, module, err) = parse_module_block( working_set, Span::new(span_start, span_end), @@ -1708,6 +1743,9 @@ pub fn parse_use( ); error = error.or(err); + // Remove the file from the stack of parsed module files + working_set.parsed_module_files.pop(); + // Restore the currently parsed directory back working_set.currently_parsed_cwd = prev_currently_parsed_cwd; diff --git a/crates/nu-protocol/src/engine/engine_state.rs b/crates/nu-protocol/src/engine/engine_state.rs index 6fbd0e528f..5855896c86 100644 --- a/crates/nu-protocol/src/engine/engine_state.rs +++ b/crates/nu-protocol/src/engine/engine_state.rs @@ -777,6 +777,8 @@ pub struct StateWorkingSet<'a> { pub type_scope: TypeScope, /// Current working directory relative to the file being parsed right now pub currently_parsed_cwd: Option, + /// All previously parsed module files. Used to protect against circular imports. + pub parsed_module_files: Vec, } /// A temporary placeholder for expression types. It is used to keep track of the input types @@ -952,6 +954,7 @@ impl<'a> StateWorkingSet<'a> { external_commands: vec![], type_scope: TypeScope::default(), currently_parsed_cwd: None, + parsed_module_files: vec![], } } diff --git a/tests/modules/mod.rs b/tests/modules/mod.rs index 221bbf0106..3bb7a6cee2 100644 --- a/tests/modules/mod.rs +++ b/tests/modules/mod.rs @@ -341,3 +341,95 @@ fn module_import_env_2() { assert_eq!(actual.out, "foo"); }) } + +#[test] +fn module_cyclical_imports_0() { + Playground::setup("module_cyclical_imports_0", |dirs, sandbox| { + sandbox.with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + use eggs.nu + "#, + )]); + + let inp = &[r#"module eggs { use spam.nu }"#]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert!(actual.err.contains("module not found")); + }) +} + +#[test] +fn module_cyclical_imports_1() { + Playground::setup("module_cyclical_imports_1", |dirs, sandbox| { + sandbox.with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + use spam.nu + "#, + )]); + + let inp = &[r#"use spam.nu"#]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert!(actual.err.contains("cyclical")); + }) +} + +#[test] +fn module_cyclical_imports_2() { + Playground::setup("module_cyclical_imports_2", |dirs, sandbox| { + sandbox + .with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + use eggs.nu + "#, + )]) + .with_files(vec![FileWithContentToBeTrimmed( + "eggs.nu", + r#" + use spam.nu + "#, + )]); + + let inp = &[r#"use spam.nu"#]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert!(actual.err.contains("cyclical")); + }) +} + +#[test] +fn module_cyclical_imports_3() { + Playground::setup("module_cyclical_imports_3", |dirs, sandbox| { + sandbox + .with_files(vec![FileWithContentToBeTrimmed( + "spam.nu", + r#" + use eggs.nu + "#, + )]) + .with_files(vec![FileWithContentToBeTrimmed( + "eggs.nu", + r#" + use bacon.nu + "#, + )]) + .with_files(vec![FileWithContentToBeTrimmed( + "bacon.nu", + r#" + use spam.nu + "#, + )]); + + let inp = &[r#"use spam.nu"#]; + + let actual = nu!(cwd: dirs.test(), pipeline(&inp.join("; "))); + + assert!(actual.err.contains("cyclical")); + }) +}