From ffcd3247633228d71fa3645f47ae22de435ee73e Mon Sep 17 00:00:00 2001 From: Addison Crump Date: Fri, 5 Apr 2024 16:31:46 +0200 Subject: [PATCH] fixup and add tests (known broken) --- ebpf/aya-ebpf/src/args.rs | 8 + ebpf/aya-ebpf/src/maps/inode_storage.rs | 2 +- ebpf/aya-ebpf/src/programs/lsm.rs | 2 +- test/integration-ebpf/src/inode_storage.rs | 40 ++- test/integration-test/src/lib.rs | 2 + test/integration-test/src/tests.rs | 1 + .../src/tests/inode_storage.rs | 49 ++++ xtask/public-api/aya.txt | 258 +++++++++--------- 8 files changed, 229 insertions(+), 133 deletions(-) create mode 100644 test/integration-test/src/tests/inode_storage.rs diff --git a/ebpf/aya-ebpf/src/args.rs b/ebpf/aya-ebpf/src/args.rs index 7cee97a83..9a0613186 100644 --- a/ebpf/aya-ebpf/src/args.rs +++ b/ebpf/aya-ebpf/src/args.rs @@ -33,6 +33,14 @@ unsafe impl FromBtfArgument for *const T { } } +unsafe impl FromBtfArgument for *mut T { + unsafe fn from_argument(ctx: *const c_void, n: usize) -> *mut T { + // BTF arguments are exposed as an array of `usize` where `usize` can + // either be treated as a pointer or a primitive type + *(ctx as *const usize).add(n) as _ + } +} + /// Helper macro to implement [`FromBtfArgument`] for a primitive type. macro_rules! unsafe_impl_from_btf_argument { ($type:ident) => { diff --git a/ebpf/aya-ebpf/src/maps/inode_storage.rs b/ebpf/aya-ebpf/src/maps/inode_storage.rs index c04e7d0d7..5d275b054 100644 --- a/ebpf/aya-ebpf/src/maps/inode_storage.rs +++ b/ebpf/aya-ebpf/src/maps/inode_storage.rs @@ -143,7 +143,7 @@ const fn build_def(ty: u32, flags: u32, pin: PinningType) -> bpf_map_def { type_: ty, key_size: mem::size_of::() as u32, value_size: mem::size_of::() as u32, - max_entries: 0, + max_entries: 1, map_flags: flags, id: 0, pinning: pin as u32, diff --git a/ebpf/aya-ebpf/src/programs/lsm.rs b/ebpf/aya-ebpf/src/programs/lsm.rs index 0ad295904..587996761 100644 --- a/ebpf/aya-ebpf/src/programs/lsm.rs +++ b/ebpf/aya-ebpf/src/programs/lsm.rs @@ -51,7 +51,7 @@ impl LsmContext { /// /// [1]: https://elixir.bootlin.com/linux/latest/source/include/linux/lsm_hook_defs.h pub unsafe fn arg(&self, n: usize) -> T { - T::from_argument(self.ctx as *const _, n) + T::from_argument(self.ctx, n) } } diff --git a/test/integration-ebpf/src/inode_storage.rs b/test/integration-ebpf/src/inode_storage.rs index bf7937407..493260fd2 100644 --- a/test/integration-ebpf/src/inode_storage.rs +++ b/test/integration-ebpf/src/inode_storage.rs @@ -1,10 +1,46 @@ +//! The purpose of this test is to identify if we can prevent a tmpfile from being linked to by +//! storing information in inode storage. + #![no_std] #![no_main] -use aya_ebpf::{macros::map, maps::inode_storage::InodeStorage}; +use aya_ebpf::{ + bindings::BPF_F_NO_PREALLOC, + cty::c_void, + macros::{lsm, map}, + maps::inode_storage::InodeStorage, + programs::LsmContext, +}; +use aya_log_ebpf::warn; #[map] -static INODE_STORE: InodeStorage = InodeStorage::new(0); +static TMP_INODE_STORE: InodeStorage = InodeStorage::new(BPF_F_NO_PREALLOC); + +#[lsm(hook = "inode_post_create_tmpfile")] +pub fn inode_post_create_tmpfile(ctx: LsmContext) -> i32 { + unsafe { try_inode_post_create_tmpfile(ctx) }.unwrap_or_else(|ret| ret) +} + +unsafe fn try_inode_post_create_tmpfile(ctx: LsmContext) -> Result { + let tmpfile: *mut c_void = ctx.arg(1); + if TMP_INODE_STORE.get_or_insert_ptr(tmpfile, &0).is_none() { + warn!(&ctx, "Couldn't add information that we deleted a tmp node!"); + } + Ok(0) +} + +#[lsm(hook = "inode_link")] +pub fn inode_link(ctx: LsmContext) -> i32 { + unsafe { try_inode_link(ctx) }.unwrap_or_else(|ret| ret) +} + +unsafe fn try_inode_link(ctx: LsmContext) -> Result { + let maybe_tmpfile: *mut c_void = ctx.arg(0); + if TMP_INODE_STORE.get(maybe_tmpfile).is_some() { + return Err(130); + } + Ok(0) +} #[cfg(not(test))] #[panic_handler] diff --git a/test/integration-test/src/lib.rs b/test/integration-test/src/lib.rs index d47080336..d2ae2e704 100644 --- a/test/integration-test/src/lib.rs +++ b/test/integration-test/src/lib.rs @@ -12,6 +12,8 @@ pub const TEXT_64_64_RELOC: &[u8] = pub const LOG: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/log")); pub const MAP_TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/map_test")); +pub const INODE_STORAGE_TEST: &[u8] = + include_bytes_aligned!(concat!(env!("OUT_DIR"), "/inode_storage")); pub const NAME_TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/name_test")); pub const PASS: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/pass")); pub const TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/test")); diff --git a/test/integration-test/src/tests.rs b/test/integration-test/src/tests.rs index f37d54bbe..fdfe5c700 100644 --- a/test/integration-test/src/tests.rs +++ b/test/integration-test/src/tests.rs @@ -1,6 +1,7 @@ mod bpf_probe_read; mod btf_relocations; mod elf; +mod inode_storage; mod load; mod log; mod rbpf; diff --git a/test/integration-test/src/tests/inode_storage.rs b/test/integration-test/src/tests/inode_storage.rs new file mode 100644 index 000000000..2defe0b63 --- /dev/null +++ b/test/integration-test/src/tests/inode_storage.rs @@ -0,0 +1,49 @@ +use std::{ + error::Error, + fs::OpenOptions, + os::{fd::IntoRawFd, unix::fs::OpenOptionsExt}, +}; + +use aya::{programs::Lsm, Ebpf}; +use aya_obj::btf::Btf; +use libc::{linkat, AT_EMPTY_PATH, AT_FDCWD, O_TMPFILE}; + +use crate::INODE_STORAGE_TEST; + +#[test] +fn no_link_to_tmp() -> Result<(), Box> { + let mut bpf = Ebpf::load(INODE_STORAGE_TEST)?; + let btf = Btf::from_sys_fs()?; + + let rename: &mut Lsm = bpf + .program_mut("inode_post_create_tmpfile") + .unwrap() + .try_into()?; + rename.load("inode_post_create_tmpfile", &btf)?; + rename.attach()?; + + let link: &mut Lsm = bpf.program_mut("inode_link").unwrap().try_into()?; + link.load("inode_link", &btf)?; + link.attach()?; + + // create a temporary file + let tmpfile = OpenOptions::new() + .custom_flags(O_TMPFILE) + .create_new(true) + .open("/tmp/")?; + + let fd = tmpfile.into_raw_fd(); + let res = unsafe { + linkat( + fd, + c"".as_ptr(), + AT_FDCWD, + c"/tmp/blah".as_ptr(), + AT_EMPTY_PATH, + ) + }; + + assert_eq!(130, res); + + Ok(()) +} diff --git a/xtask/public-api/aya.txt b/xtask/public-api/aya.txt index 895e1b5fb..15463da0b 100644 --- a/xtask/public-api/aya.txt +++ b/xtask/public-api/aya.txt @@ -27,12 +27,12 @@ pub fn aya::maps::array::Array::map(&self) -> &aya::maps::MapData impl core::convert::TryFrom for aya::maps::array::Array pub type aya::maps::array::Array::Error = aya::maps::MapError pub fn aya::maps::array::Array::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::array::Array where T: core::marker::Freeze -impl core::marker::Send for aya::maps::array::Array where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::array::Array where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::array::Array where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::array::Array where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::array::Array where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::array::Array where U: core::convert::From pub fn aya::maps::array::Array::into(self) -> U impl core::convert::TryFrom for aya::maps::array::Array where U: core::convert::Into @@ -70,12 +70,12 @@ pub fn aya::maps::PerCpuArray::map(&self) -> &aya::maps::MapData impl core::convert::TryFrom for aya::maps::PerCpuArray pub type aya::maps::PerCpuArray::Error = aya::maps::MapError pub fn aya::maps::PerCpuArray::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::PerCpuArray where T: core::marker::Freeze -impl core::marker::Send for aya::maps::PerCpuArray where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::PerCpuArray where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::PerCpuArray where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::PerCpuArray where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::PerCpuArray where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::PerCpuArray where U: core::convert::From pub fn aya::maps::PerCpuArray::into(self) -> U impl core::convert::TryFrom for aya::maps::PerCpuArray where U: core::convert::Into @@ -150,12 +150,12 @@ pub fn aya::maps::bloom_filter::BloomFilter::fmt(&self, f: &mut core::fmt: impl core::convert::TryFrom for aya::maps::bloom_filter::BloomFilter pub type aya::maps::bloom_filter::BloomFilter::Error = aya::maps::MapError pub fn aya::maps::bloom_filter::BloomFilter::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::bloom_filter::BloomFilter where T: core::marker::Freeze -impl core::marker::Send for aya::maps::bloom_filter::BloomFilter where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::bloom_filter::BloomFilter where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::bloom_filter::BloomFilter where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::bloom_filter::BloomFilter where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::bloom_filter::BloomFilter where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::bloom_filter::BloomFilter where U: core::convert::From pub fn aya::maps::bloom_filter::BloomFilter::into(self) -> U impl core::convert::TryFrom for aya::maps::bloom_filter::BloomFilter where U: core::convert::Into @@ -198,11 +198,11 @@ pub fn aya::maps::hash_map::HashMap::map(&self) -> &aya::maps::MapData impl core::fmt::Debug for aya::maps::hash_map::HashMap pub fn aya::maps::hash_map::HashMap::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Freeze for aya::maps::hash_map::HashMap where T: core::marker::Freeze -impl core::marker::Send for aya::maps::hash_map::HashMap where K: core::marker::Send, T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::hash_map::HashMap where K: core::marker::Sync, T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::hash_map::HashMap where K: core::marker::Unpin, T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::HashMap where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::HashMap where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Send for aya::maps::hash_map::HashMap where T: core::marker::Send, K: core::marker::Send, V: core::marker::Send +impl core::marker::Sync for aya::maps::hash_map::HashMap where T: core::marker::Sync, K: core::marker::Sync, V: core::marker::Sync +impl core::marker::Unpin for aya::maps::hash_map::HashMap where T: core::marker::Unpin, K: core::marker::Unpin, V: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::HashMap where T: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::HashMap where T: core::panic::unwind_safe::UnwindSafe, K: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::hash_map::HashMap where U: core::convert::From pub fn aya::maps::hash_map::HashMap::into(self) -> U impl core::convert::TryFrom for aya::maps::hash_map::HashMap where U: core::convert::Into @@ -241,12 +241,12 @@ pub fn aya::maps::hash_map::PerCpuHashMap::try_from(ma impl, K: aya::Pod, V: aya::Pod> aya::maps::IterableMap> for aya::maps::hash_map::PerCpuHashMap pub fn aya::maps::hash_map::PerCpuHashMap::get(&self, key: &K) -> core::result::Result, aya::maps::MapError> pub fn aya::maps::hash_map::PerCpuHashMap::map(&self) -> &aya::maps::MapData -impl core::marker::Freeze for aya::maps::hash_map::PerCpuHashMap where T: core::marker::Freeze -impl core::marker::Send for aya::maps::hash_map::PerCpuHashMap where K: core::marker::Send, T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::hash_map::PerCpuHashMap where K: core::marker::Sync, T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::hash_map::PerCpuHashMap where K: core::marker::Unpin, T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::PerCpuHashMap where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::PerCpuHashMap where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static, K: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::hash_map::PerCpuHashMap where U: core::convert::From pub fn aya::maps::hash_map::PerCpuHashMap::into(self) -> U impl core::convert::TryFrom for aya::maps::hash_map::PerCpuHashMap where U: core::convert::Into @@ -276,12 +276,12 @@ impl core::marker::Copy for aya::maps::lpm_trie::Key impl, K: aya::Pod, V: aya::Pod> aya::maps::IterableMap, V> for aya::maps::lpm_trie::LpmTrie pub fn aya::maps::lpm_trie::LpmTrie::get(&self, key: &aya::maps::lpm_trie::Key) -> core::result::Result pub fn aya::maps::lpm_trie::LpmTrie::map(&self) -> &aya::maps::MapData -impl core::marker::Freeze for aya::maps::lpm_trie::Key where K: core::marker::Freeze -impl core::marker::Send for aya::maps::lpm_trie::Key where K: core::marker::Send -impl core::marker::Sync for aya::maps::lpm_trie::Key where K: core::marker::Sync -impl core::marker::Unpin for aya::maps::lpm_trie::Key where K: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::lpm_trie::Key where K: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::lpm_trie::Key where K: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::lpm_trie::Key where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Freeze +impl core::marker::Send for aya::maps::lpm_trie::Key where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send +impl core::marker::Sync for aya::maps::lpm_trie::Key where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync +impl core::marker::Unpin for aya::maps::lpm_trie::Key where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::lpm_trie::Key where K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::lpm_trie::Key where K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::lpm_trie::Key where U: core::convert::From pub fn aya::maps::lpm_trie::Key::into(self) -> U impl core::convert::TryFrom for aya::maps::lpm_trie::Key where U: core::convert::Into @@ -327,11 +327,11 @@ pub fn aya::maps::lpm_trie::LpmTrie::map(&self) -> &aya::maps::MapData impl core::fmt::Debug for aya::maps::lpm_trie::LpmTrie pub fn aya::maps::lpm_trie::LpmTrie::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Freeze for aya::maps::lpm_trie::LpmTrie where T: core::marker::Freeze -impl core::marker::Send for aya::maps::lpm_trie::LpmTrie where K: core::marker::Send, T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::lpm_trie::LpmTrie where K: core::marker::Sync, T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::lpm_trie::LpmTrie where K: core::marker::Unpin, T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::lpm_trie::LpmTrie where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::lpm_trie::LpmTrie where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Send for aya::maps::lpm_trie::LpmTrie where T: core::marker::Send, K: core::marker::Send, V: core::marker::Send +impl core::marker::Sync for aya::maps::lpm_trie::LpmTrie where T: core::marker::Sync, K: core::marker::Sync, V: core::marker::Sync +impl core::marker::Unpin for aya::maps::lpm_trie::LpmTrie where T: core::marker::Unpin, K: core::marker::Unpin, V: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::lpm_trie::LpmTrie where T: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::lpm_trie::LpmTrie where T: core::panic::unwind_safe::UnwindSafe, K: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::lpm_trie::LpmTrie where U: core::convert::From pub fn aya::maps::lpm_trie::LpmTrie::into(self) -> U impl core::convert::TryFrom for aya::maps::lpm_trie::LpmTrie where U: core::convert::Into @@ -433,9 +433,9 @@ pub struct aya::maps::perf::AsyncPerfEventArrayBuffer> aya::maps::perf::AsyncPerfEventArrayBuffer pub async fn aya::maps::perf::AsyncPerfEventArrayBuffer::read_events(&mut self, buffers: &mut [bytes::bytes_mut::BytesMut]) -> core::result::Result impl !core::marker::Freeze for aya::maps::perf::AsyncPerfEventArrayBuffer -impl core::marker::Send for aya::maps::perf::AsyncPerfEventArrayBuffer where T: core::marker::Sync + core::marker::Send -impl core::marker::Sync for aya::maps::perf::AsyncPerfEventArrayBuffer where T: core::marker::Sync + core::marker::Send -impl core::marker::Unpin for aya::maps::perf::AsyncPerfEventArrayBuffer +impl core::marker::Send for aya::maps::perf::AsyncPerfEventArrayBuffer where T: core::borrow::Borrow + core::marker::Sync + core::marker::Send +impl core::marker::Sync for aya::maps::perf::AsyncPerfEventArrayBuffer where T: core::borrow::Borrow + core::marker::Sync + core::marker::Send +impl core::marker::Unpin for aya::maps::perf::AsyncPerfEventArrayBuffer where T: core::borrow::Borrow impl !core::panic::unwind_safe::RefUnwindSafe for aya::maps::perf::AsyncPerfEventArrayBuffer impl !core::panic::unwind_safe::UnwindSafe for aya::maps::perf::AsyncPerfEventArrayBuffer impl core::convert::Into for aya::maps::perf::AsyncPerfEventArrayBuffer where U: core::convert::From @@ -569,12 +569,12 @@ pub fn aya::maps::queue::Queue<&'a mut aya::maps::MapData, V>::try_from(map: &'a impl core::convert::TryFrom for aya::maps::queue::Queue pub type aya::maps::queue::Queue::Error = aya::maps::MapError pub fn aya::maps::queue::Queue::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::queue::Queue where T: core::marker::Freeze -impl core::marker::Send for aya::maps::queue::Queue where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::queue::Queue where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::queue::Queue where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::queue::Queue where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::queue::Queue where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::queue::Queue where U: core::convert::From pub fn aya::maps::queue::Queue::into(self) -> U impl core::convert::TryFrom for aya::maps::queue::Queue where U: core::convert::Into @@ -683,11 +683,11 @@ impl core::convert::TryFrom for aya::maps::SockHash pub type aya::maps::SockHash::Error = aya::maps::MapError pub fn aya::maps::SockHash::try_from(map: aya::maps::Map) -> core::result::Result impl core::marker::Freeze for aya::maps::SockHash where T: core::marker::Freeze -impl core::marker::Send for aya::maps::SockHash where K: core::marker::Send, T: core::marker::Send -impl core::marker::Sync for aya::maps::SockHash where K: core::marker::Sync, T: core::marker::Sync -impl core::marker::Unpin for aya::maps::SockHash where K: core::marker::Unpin, T: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::SockHash where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::SockHash where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe +impl core::marker::Send for aya::maps::SockHash where T: core::marker::Send, K: core::marker::Send +impl core::marker::Sync for aya::maps::SockHash where T: core::marker::Sync, K: core::marker::Sync +impl core::marker::Unpin for aya::maps::SockHash where T: core::marker::Unpin, K: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::SockHash where T: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::SockHash where T: core::panic::unwind_safe::UnwindSafe, K: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::SockHash where U: core::convert::From pub fn aya::maps::SockHash::into(self) -> U impl core::convert::TryFrom for aya::maps::SockHash where U: core::convert::Into @@ -789,12 +789,12 @@ pub fn aya::maps::stack::Stack<&'a mut aya::maps::MapData, V>::try_from(map: &'a impl core::convert::TryFrom for aya::maps::stack::Stack pub type aya::maps::stack::Stack::Error = aya::maps::MapError pub fn aya::maps::stack::Stack::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::stack::Stack where T: core::marker::Freeze -impl core::marker::Send for aya::maps::stack::Stack where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::stack::Stack where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::stack::Stack where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::stack::Stack where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::stack::Stack where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::stack::Stack where U: core::convert::From pub fn aya::maps::stack::Stack::into(self) -> U impl core::convert::TryFrom for aya::maps::stack::Stack where U: core::convert::Into @@ -1415,12 +1415,12 @@ pub fn aya::maps::array::Array::map(&self) -> &aya::maps::MapData impl core::convert::TryFrom for aya::maps::array::Array pub type aya::maps::array::Array::Error = aya::maps::MapError pub fn aya::maps::array::Array::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::array::Array where T: core::marker::Freeze -impl core::marker::Send for aya::maps::array::Array where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::array::Array where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::array::Array where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::array::Array where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::array::Array where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::array::Array where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::array::Array where U: core::convert::From pub fn aya::maps::array::Array::into(self) -> U impl core::convert::TryFrom for aya::maps::array::Array where U: core::convert::Into @@ -1490,12 +1490,12 @@ pub fn aya::maps::bloom_filter::BloomFilter::fmt(&self, f: &mut core::fmt: impl core::convert::TryFrom for aya::maps::bloom_filter::BloomFilter pub type aya::maps::bloom_filter::BloomFilter::Error = aya::maps::MapError pub fn aya::maps::bloom_filter::BloomFilter::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::bloom_filter::BloomFilter where T: core::marker::Freeze -impl core::marker::Send for aya::maps::bloom_filter::BloomFilter where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::bloom_filter::BloomFilter where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::bloom_filter::BloomFilter where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::bloom_filter::BloomFilter where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::bloom_filter::BloomFilter where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::bloom_filter::BloomFilter where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::bloom_filter::BloomFilter where U: core::convert::From pub fn aya::maps::bloom_filter::BloomFilter::into(self) -> U impl core::convert::TryFrom for aya::maps::bloom_filter::BloomFilter where U: core::convert::Into @@ -1658,11 +1658,11 @@ pub fn aya::maps::hash_map::HashMap::map(&self) -> &aya::maps::MapData impl core::fmt::Debug for aya::maps::hash_map::HashMap pub fn aya::maps::hash_map::HashMap::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Freeze for aya::maps::hash_map::HashMap where T: core::marker::Freeze -impl core::marker::Send for aya::maps::hash_map::HashMap where K: core::marker::Send, T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::hash_map::HashMap where K: core::marker::Sync, T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::hash_map::HashMap where K: core::marker::Unpin, T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::HashMap where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::HashMap where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Send for aya::maps::hash_map::HashMap where T: core::marker::Send, K: core::marker::Send, V: core::marker::Send +impl core::marker::Sync for aya::maps::hash_map::HashMap where T: core::marker::Sync, K: core::marker::Sync, V: core::marker::Sync +impl core::marker::Unpin for aya::maps::hash_map::HashMap where T: core::marker::Unpin, K: core::marker::Unpin, V: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::HashMap where T: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::HashMap where T: core::panic::unwind_safe::UnwindSafe, K: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::hash_map::HashMap where U: core::convert::From pub fn aya::maps::hash_map::HashMap::into(self) -> U impl core::convert::TryFrom for aya::maps::hash_map::HashMap where U: core::convert::Into @@ -1704,11 +1704,11 @@ pub fn aya::maps::lpm_trie::LpmTrie::map(&self) -> &aya::maps::MapData impl core::fmt::Debug for aya::maps::lpm_trie::LpmTrie pub fn aya::maps::lpm_trie::LpmTrie::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Freeze for aya::maps::lpm_trie::LpmTrie where T: core::marker::Freeze -impl core::marker::Send for aya::maps::lpm_trie::LpmTrie where K: core::marker::Send, T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::lpm_trie::LpmTrie where K: core::marker::Sync, T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::lpm_trie::LpmTrie where K: core::marker::Unpin, T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::lpm_trie::LpmTrie where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::lpm_trie::LpmTrie where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Send for aya::maps::lpm_trie::LpmTrie where T: core::marker::Send, K: core::marker::Send, V: core::marker::Send +impl core::marker::Sync for aya::maps::lpm_trie::LpmTrie where T: core::marker::Sync, K: core::marker::Sync, V: core::marker::Sync +impl core::marker::Unpin for aya::maps::lpm_trie::LpmTrie where T: core::marker::Unpin, K: core::marker::Unpin, V: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::lpm_trie::LpmTrie where T: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::lpm_trie::LpmTrie where T: core::panic::unwind_safe::UnwindSafe, K: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::lpm_trie::LpmTrie where U: core::convert::From pub fn aya::maps::lpm_trie::LpmTrie::into(self) -> U impl core::convert::TryFrom for aya::maps::lpm_trie::LpmTrie where U: core::convert::Into @@ -1826,12 +1826,12 @@ pub struct aya::maps::MapIter<'coll, K: aya::Pod, V, I: aya::maps::IterableMap> core::iter::traits::iterator::Iterator for aya::maps::MapIter<'_, K, V, I> pub type aya::maps::MapIter<'_, K, V, I>::Item = core::result::Result<(K, V), aya::maps::MapError> pub fn aya::maps::MapIter<'_, K, V, I>::next(&mut self) -> core::option::Option -impl<'coll, K, V, I> core::marker::Freeze for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Freeze -impl<'coll, K, V, I> core::marker::Send for aya::maps::MapIter<'coll, K, V, I> where I: core::marker::Sync, K: core::marker::Send, V: core::marker::Send -impl<'coll, K, V, I> core::marker::Sync for aya::maps::MapIter<'coll, K, V, I> where I: core::marker::Sync, K: core::marker::Sync, V: core::marker::Sync -impl<'coll, K, V, I> core::marker::Unpin for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Unpin, V: core::marker::Unpin -impl<'coll, K, V, I> core::panic::unwind_safe::RefUnwindSafe for aya::maps::MapIter<'coll, K, V, I> where I: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl<'coll, K, V, I> core::panic::unwind_safe::UnwindSafe for aya::maps::MapIter<'coll, K, V, I> where I: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl<'coll, K, V, I> core::marker::Freeze for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Freeze +impl<'coll, K, V, I> core::marker::Send for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, I: core::marker::Sync, V: core::marker::Send +impl<'coll, K, V, I> core::marker::Sync for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, I: core::marker::Sync, V: core::marker::Sync +impl<'coll, K, V, I> core::marker::Unpin for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, V: core::marker::Unpin +impl<'coll, K, V, I> core::panic::unwind_safe::RefUnwindSafe for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, I: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe +impl<'coll, K, V, I> core::panic::unwind_safe::UnwindSafe for aya::maps::MapIter<'coll, K, V, I> where K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, I: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::UnwindSafe impl core::iter::traits::collect::IntoIterator for aya::maps::MapIter<'coll, K, V, I> where I: core::iter::traits::iterator::Iterator pub type aya::maps::MapIter<'coll, K, V, I>::IntoIter = I pub type aya::maps::MapIter<'coll, K, V, I>::Item = ::Item @@ -1856,12 +1856,12 @@ pub struct aya::maps::MapKeys<'coll, K: aya::Pod> impl core::iter::traits::iterator::Iterator for aya::maps::MapKeys<'_, K> pub type aya::maps::MapKeys<'_, K>::Item = core::result::Result pub fn aya::maps::MapKeys<'_, K>::next(&mut self) -> core::option::Option> -impl<'coll, K> core::marker::Freeze for aya::maps::MapKeys<'coll, K> where K: core::marker::Freeze -impl<'coll, K> core::marker::Send for aya::maps::MapKeys<'coll, K> where K: core::marker::Send -impl<'coll, K> core::marker::Sync for aya::maps::MapKeys<'coll, K> where K: core::marker::Sync -impl<'coll, K> core::marker::Unpin for aya::maps::MapKeys<'coll, K> where K: core::marker::Unpin -impl<'coll, K> core::panic::unwind_safe::RefUnwindSafe for aya::maps::MapKeys<'coll, K> where K: core::panic::unwind_safe::RefUnwindSafe -impl<'coll, K> core::panic::unwind_safe::UnwindSafe for aya::maps::MapKeys<'coll, K> where K: core::panic::unwind_safe::UnwindSafe +impl<'coll, K> core::marker::Freeze for aya::maps::MapKeys<'coll, K> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Freeze +impl<'coll, K> core::marker::Send for aya::maps::MapKeys<'coll, K> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send +impl<'coll, K> core::marker::Sync for aya::maps::MapKeys<'coll, K> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync +impl<'coll, K> core::marker::Unpin for aya::maps::MapKeys<'coll, K> where K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin +impl<'coll, K> core::panic::unwind_safe::RefUnwindSafe for aya::maps::MapKeys<'coll, K> where K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe +impl<'coll, K> core::panic::unwind_safe::UnwindSafe for aya::maps::MapKeys<'coll, K> where K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe impl core::iter::traits::collect::IntoIterator for aya::maps::MapKeys<'coll, K> where I: core::iter::traits::iterator::Iterator pub type aya::maps::MapKeys<'coll, K>::IntoIter = I pub type aya::maps::MapKeys<'coll, K>::Item = ::Item @@ -1903,12 +1903,12 @@ pub fn aya::maps::PerCpuArray::map(&self) -> &aya::maps::MapData impl core::convert::TryFrom for aya::maps::PerCpuArray pub type aya::maps::PerCpuArray::Error = aya::maps::MapError pub fn aya::maps::PerCpuArray::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::PerCpuArray where T: core::marker::Freeze -impl core::marker::Send for aya::maps::PerCpuArray where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::PerCpuArray where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::PerCpuArray where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::PerCpuArray where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::PerCpuArray where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::PerCpuArray where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::PerCpuArray where U: core::convert::From pub fn aya::maps::PerCpuArray::into(self) -> U impl core::convert::TryFrom for aya::maps::PerCpuArray where U: core::convert::Into @@ -1947,12 +1947,12 @@ pub fn aya::maps::hash_map::PerCpuHashMap::try_from(ma impl, K: aya::Pod, V: aya::Pod> aya::maps::IterableMap> for aya::maps::hash_map::PerCpuHashMap pub fn aya::maps::hash_map::PerCpuHashMap::get(&self, key: &K) -> core::result::Result, aya::maps::MapError> pub fn aya::maps::hash_map::PerCpuHashMap::map(&self) -> &aya::maps::MapData -impl core::marker::Freeze for aya::maps::hash_map::PerCpuHashMap where T: core::marker::Freeze -impl core::marker::Send for aya::maps::hash_map::PerCpuHashMap where K: core::marker::Send, T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::hash_map::PerCpuHashMap where K: core::marker::Sync, T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::hash_map::PerCpuHashMap where K: core::marker::Unpin, T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::PerCpuHashMap where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::PerCpuHashMap where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static, K: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, K: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::hash_map::PerCpuHashMap where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, K: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::hash_map::PerCpuHashMap where U: core::convert::From pub fn aya::maps::hash_map::PerCpuHashMap::into(self) -> U impl core::convert::TryFrom for aya::maps::hash_map::PerCpuHashMap where U: core::convert::Into @@ -1984,12 +1984,12 @@ pub fn aya::maps::PerCpuArray::get(&self, index: &u32) -> core::result::Re pub fn aya::maps::PerCpuArray::map(&self) -> &aya::maps::MapData impl core::fmt::Debug for aya::maps::PerCpuValues pub fn aya::maps::PerCpuValues::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -impl core::marker::Freeze for aya::maps::PerCpuValues -impl core::marker::Send for aya::maps::PerCpuValues where T: core::marker::Send -impl core::marker::Sync for aya::maps::PerCpuValues where T: core::marker::Sync -impl core::marker::Unpin for aya::maps::PerCpuValues -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::PerCpuValues where T: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::PerCpuValues where T: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::PerCpuValues where T: core::marker::Copy + core::clone::Clone + 'static +impl core::marker::Send for aya::maps::PerCpuValues where T: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send +impl core::marker::Sync for aya::maps::PerCpuValues where T: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync +impl core::marker::Unpin for aya::maps::PerCpuValues where T: core::marker::Copy + core::clone::Clone + 'static +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::PerCpuValues where T: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::PerCpuValues where T: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::PerCpuValues where U: core::convert::From pub fn aya::maps::PerCpuValues::into(self) -> U impl core::convert::TryFrom for aya::maps::PerCpuValues where U: core::convert::Into @@ -2098,12 +2098,12 @@ pub fn aya::maps::queue::Queue<&'a mut aya::maps::MapData, V>::try_from(map: &'a impl core::convert::TryFrom for aya::maps::queue::Queue pub type aya::maps::queue::Queue::Error = aya::maps::MapError pub fn aya::maps::queue::Queue::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::queue::Queue where T: core::marker::Freeze -impl core::marker::Send for aya::maps::queue::Queue where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::queue::Queue where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::queue::Queue where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::queue::Queue where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::queue::Queue where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::queue::Queue where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::queue::Queue where U: core::convert::From pub fn aya::maps::queue::Queue::into(self) -> U impl core::convert::TryFrom for aya::maps::queue::Queue where U: core::convert::Into @@ -2180,11 +2180,11 @@ impl core::convert::TryFrom for aya::maps::SockHash pub type aya::maps::SockHash::Error = aya::maps::MapError pub fn aya::maps::SockHash::try_from(map: aya::maps::Map) -> core::result::Result impl core::marker::Freeze for aya::maps::SockHash where T: core::marker::Freeze -impl core::marker::Send for aya::maps::SockHash where K: core::marker::Send, T: core::marker::Send -impl core::marker::Sync for aya::maps::SockHash where K: core::marker::Sync, T: core::marker::Sync -impl core::marker::Unpin for aya::maps::SockHash where K: core::marker::Unpin, T: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::SockHash where K: core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::SockHash where K: core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe +impl core::marker::Send for aya::maps::SockHash where T: core::marker::Send, K: core::marker::Send +impl core::marker::Sync for aya::maps::SockHash where T: core::marker::Sync, K: core::marker::Sync +impl core::marker::Unpin for aya::maps::SockHash where T: core::marker::Unpin, K: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::SockHash where T: core::panic::unwind_safe::RefUnwindSafe, K: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::SockHash where T: core::panic::unwind_safe::UnwindSafe, K: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::SockHash where U: core::convert::From pub fn aya::maps::SockHash::into(self) -> U impl core::convert::TryFrom for aya::maps::SockHash where U: core::convert::Into @@ -2258,12 +2258,12 @@ pub fn aya::maps::stack::Stack<&'a mut aya::maps::MapData, V>::try_from(map: &'a impl core::convert::TryFrom for aya::maps::stack::Stack pub type aya::maps::stack::Stack::Error = aya::maps::MapError pub fn aya::maps::stack::Stack::try_from(map: aya::maps::Map) -> core::result::Result -impl core::marker::Freeze for aya::maps::stack::Stack where T: core::marker::Freeze -impl core::marker::Send for aya::maps::stack::Stack where T: core::marker::Send, V: core::marker::Send -impl core::marker::Sync for aya::maps::stack::Stack where T: core::marker::Sync, V: core::marker::Sync -impl core::marker::Unpin for aya::maps::stack::Stack where T: core::marker::Unpin, V: core::marker::Unpin -impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::stack::Stack where T: core::panic::unwind_safe::RefUnwindSafe, V: core::panic::unwind_safe::RefUnwindSafe -impl core::panic::unwind_safe::UnwindSafe for aya::maps::stack::Stack where T: core::panic::unwind_safe::UnwindSafe, V: core::panic::unwind_safe::UnwindSafe +impl core::marker::Freeze for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static, T: core::marker::Freeze +impl core::marker::Send for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Send, T: core::marker::Send +impl core::marker::Sync for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Sync, T: core::marker::Sync +impl core::marker::Unpin for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::marker::Unpin, T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::RefUnwindSafe, T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya::maps::stack::Stack where V: core::marker::Copy + core::clone::Clone + 'static + core::panic::unwind_safe::UnwindSafe, T: core::panic::unwind_safe::UnwindSafe impl core::convert::Into for aya::maps::stack::Stack where U: core::convert::From pub fn aya::maps::stack::Stack::into(self) -> U impl core::convert::TryFrom for aya::maps::stack::Stack where U: core::convert::Into