diff --git a/aya-obj/src/lib.rs b/aya-obj/src/lib.rs index ea0e5670..c6e3a45c 100644 --- a/aya-obj/src/lib.rs +++ b/aya-obj/src/lib.rs @@ -87,6 +87,7 @@ mod std { pub mod btf; pub mod generated; +pub mod links; pub mod maps; pub mod obj; pub mod programs; diff --git a/aya-obj/src/links.rs b/aya-obj/src/links.rs new file mode 100644 index 00000000..b01e60db --- /dev/null +++ b/aya-obj/src/links.rs @@ -0,0 +1,100 @@ +//! Link type bindings. + +use crate::{ + generated::{bpf_attach_type, bpf_link_type}, + InvalidTypeBinding, +}; + +impl TryFrom for bpf_link_type { + type Error = InvalidTypeBinding; + + fn try_from(link_type: u32) -> Result { + use bpf_link_type::*; + Ok(match link_type { + x if x == BPF_LINK_TYPE_UNSPEC as u32 => BPF_LINK_TYPE_UNSPEC, + x if x == BPF_LINK_TYPE_RAW_TRACEPOINT as u32 => BPF_LINK_TYPE_RAW_TRACEPOINT, + x if x == BPF_LINK_TYPE_TRACING as u32 => BPF_LINK_TYPE_TRACING, + x if x == BPF_LINK_TYPE_CGROUP as u32 => BPF_LINK_TYPE_CGROUP, + x if x == BPF_LINK_TYPE_ITER as u32 => BPF_LINK_TYPE_ITER, + x if x == BPF_LINK_TYPE_NETNS as u32 => BPF_LINK_TYPE_NETNS, + x if x == BPF_LINK_TYPE_XDP as u32 => BPF_LINK_TYPE_XDP, + x if x == BPF_LINK_TYPE_PERF_EVENT as u32 => BPF_LINK_TYPE_PERF_EVENT, + x if x == BPF_LINK_TYPE_KPROBE_MULTI as u32 => BPF_LINK_TYPE_KPROBE_MULTI, + x if x == BPF_LINK_TYPE_STRUCT_OPS as u32 => BPF_LINK_TYPE_STRUCT_OPS, + x if x == BPF_LINK_TYPE_NETFILTER as u32 => BPF_LINK_TYPE_NETFILTER, + x if x == BPF_LINK_TYPE_TCX as u32 => BPF_LINK_TYPE_TCX, + x if x == BPF_LINK_TYPE_UPROBE_MULTI as u32 => BPF_LINK_TYPE_UPROBE_MULTI, + x if x == BPF_LINK_TYPE_NETKIT as u32 => BPF_LINK_TYPE_NETKIT, + _ => return Err(InvalidTypeBinding { value: link_type }), + }) + } +} + +impl TryFrom for bpf_attach_type { + type Error = InvalidTypeBinding; + + fn try_from(attach_type: u32) -> Result { + use bpf_attach_type::*; + Ok(match attach_type { + x if x == BPF_CGROUP_INET_INGRESS as u32 => BPF_CGROUP_INET_INGRESS, + x if x == BPF_CGROUP_INET_EGRESS as u32 => BPF_CGROUP_INET_EGRESS, + x if x == BPF_CGROUP_INET_SOCK_CREATE as u32 => BPF_CGROUP_INET_SOCK_CREATE, + x if x == BPF_CGROUP_SOCK_OPS as u32 => BPF_CGROUP_SOCK_OPS, + x if x == BPF_SK_SKB_STREAM_PARSER as u32 => BPF_SK_SKB_STREAM_PARSER, + x if x == BPF_SK_SKB_STREAM_VERDICT as u32 => BPF_SK_SKB_STREAM_VERDICT, + x if x == BPF_CGROUP_DEVICE as u32 => BPF_CGROUP_DEVICE, + x if x == BPF_SK_MSG_VERDICT as u32 => BPF_SK_MSG_VERDICT, + x if x == BPF_CGROUP_INET4_BIND as u32 => BPF_CGROUP_INET4_BIND, + x if x == BPF_CGROUP_INET6_BIND as u32 => BPF_CGROUP_INET6_BIND, + x if x == BPF_CGROUP_INET4_CONNECT as u32 => BPF_CGROUP_INET4_CONNECT, + x if x == BPF_CGROUP_INET6_CONNECT as u32 => BPF_CGROUP_INET6_CONNECT, + x if x == BPF_CGROUP_INET4_POST_BIND as u32 => BPF_CGROUP_INET4_POST_BIND, + x if x == BPF_CGROUP_INET6_POST_BIND as u32 => BPF_CGROUP_INET6_POST_BIND, + x if x == BPF_CGROUP_UDP4_SENDMSG as u32 => BPF_CGROUP_UDP4_SENDMSG, + x if x == BPF_CGROUP_UDP6_SENDMSG as u32 => BPF_CGROUP_UDP6_SENDMSG, + x if x == BPF_LIRC_MODE2 as u32 => BPF_LIRC_MODE2, + x if x == BPF_FLOW_DISSECTOR as u32 => BPF_FLOW_DISSECTOR, + x if x == BPF_CGROUP_SYSCTL as u32 => BPF_CGROUP_SYSCTL, + x if x == BPF_CGROUP_UDP4_RECVMSG as u32 => BPF_CGROUP_UDP4_RECVMSG, + x if x == BPF_CGROUP_UDP6_RECVMSG as u32 => BPF_CGROUP_UDP6_RECVMSG, + x if x == BPF_CGROUP_GETSOCKOPT as u32 => BPF_CGROUP_GETSOCKOPT, + x if x == BPF_CGROUP_SETSOCKOPT as u32 => BPF_CGROUP_SETSOCKOPT, + x if x == BPF_TRACE_RAW_TP as u32 => BPF_TRACE_RAW_TP, + x if x == BPF_TRACE_FENTRY as u32 => BPF_TRACE_FENTRY, + x if x == BPF_TRACE_FEXIT as u32 => BPF_TRACE_FEXIT, + x if x == BPF_MODIFY_RETURN as u32 => BPF_MODIFY_RETURN, + x if x == BPF_LSM_MAC as u32 => BPF_LSM_MAC, + x if x == BPF_TRACE_ITER as u32 => BPF_TRACE_ITER, + x if x == BPF_CGROUP_INET4_GETPEERNAME as u32 => BPF_CGROUP_INET4_GETPEERNAME, + x if x == BPF_CGROUP_INET6_GETPEERNAME as u32 => BPF_CGROUP_INET6_GETPEERNAME, + x if x == BPF_CGROUP_INET4_GETSOCKNAME as u32 => BPF_CGROUP_INET4_GETSOCKNAME, + x if x == BPF_CGROUP_INET6_GETSOCKNAME as u32 => BPF_CGROUP_INET6_GETSOCKNAME, + x if x == BPF_XDP_DEVMAP as u32 => BPF_XDP_DEVMAP, + x if x == BPF_CGROUP_INET_SOCK_RELEASE as u32 => BPF_CGROUP_INET_SOCK_RELEASE, + x if x == BPF_XDP_CPUMAP as u32 => BPF_XDP_CPUMAP, + x if x == BPF_SK_LOOKUP as u32 => BPF_SK_LOOKUP, + x if x == BPF_XDP as u32 => BPF_XDP, + x if x == BPF_SK_SKB_VERDICT as u32 => BPF_SK_SKB_VERDICT, + x if x == BPF_SK_REUSEPORT_SELECT as u32 => BPF_SK_REUSEPORT_SELECT, + x if x == BPF_SK_REUSEPORT_SELECT_OR_MIGRATE as u32 => { + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE + } + x if x == BPF_PERF_EVENT as u32 => BPF_PERF_EVENT, + x if x == BPF_TRACE_KPROBE_MULTI as u32 => BPF_TRACE_KPROBE_MULTI, + x if x == BPF_LSM_CGROUP as u32 => BPF_LSM_CGROUP, + x if x == BPF_STRUCT_OPS as u32 => BPF_STRUCT_OPS, + x if x == BPF_NETFILTER as u32 => BPF_NETFILTER, + x if x == BPF_TCX_INGRESS as u32 => BPF_TCX_INGRESS, + x if x == BPF_TCX_EGRESS as u32 => BPF_TCX_EGRESS, + x if x == BPF_TRACE_UPROBE_MULTI as u32 => BPF_TRACE_UPROBE_MULTI, + x if x == BPF_CGROUP_UNIX_CONNECT as u32 => BPF_CGROUP_UNIX_CONNECT, + x if x == BPF_CGROUP_UNIX_SENDMSG as u32 => BPF_CGROUP_UNIX_SENDMSG, + x if x == BPF_CGROUP_UNIX_RECVMSG as u32 => BPF_CGROUP_UNIX_RECVMSG, + x if x == BPF_CGROUP_UNIX_GETPEERNAME as u32 => BPF_CGROUP_UNIX_GETPEERNAME, + x if x == BPF_CGROUP_UNIX_GETSOCKNAME as u32 => BPF_CGROUP_UNIX_GETSOCKNAME, + x if x == BPF_NETKIT_PRIMARY as u32 => BPF_NETKIT_PRIMARY, + x if x == BPF_NETKIT_PEER as u32 => BPF_NETKIT_PEER, + _ => return Err(InvalidTypeBinding { value: attach_type }), + }) + } +} diff --git a/aya-obj/src/maps.rs b/aya-obj/src/maps.rs index ca85bba7..3eb82409 100644 --- a/aya-obj/src/maps.rs +++ b/aya-obj/src/maps.rs @@ -5,16 +5,10 @@ use core::mem; #[cfg(not(feature = "std"))] use crate::std; -use crate::EbpfSectionKind; - -/// Invalid map type encontered -pub struct InvalidMapTypeError { - /// The map type - pub map_type: u32, -} +use crate::{EbpfSectionKind, InvalidTypeBinding}; impl TryFrom for crate::generated::bpf_map_type { - type Error = InvalidMapTypeError; + type Error = InvalidTypeBinding; fn try_from(map_type: u32) -> Result { use crate::generated::bpf_map_type::*; @@ -31,7 +25,6 @@ impl TryFrom for crate::generated::bpf_map_type { x if x == BPF_MAP_TYPE_LRU_HASH as u32 => BPF_MAP_TYPE_LRU_HASH, x if x == BPF_MAP_TYPE_LRU_PERCPU_HASH as u32 => BPF_MAP_TYPE_LRU_PERCPU_HASH, x if x == BPF_MAP_TYPE_LPM_TRIE as u32 => BPF_MAP_TYPE_LPM_TRIE, - x if x == BPF_MAP_TYPE_BLOOM_FILTER as u32 => BPF_MAP_TYPE_BLOOM_FILTER, x if x == BPF_MAP_TYPE_ARRAY_OF_MAPS as u32 => BPF_MAP_TYPE_ARRAY_OF_MAPS, x if x == BPF_MAP_TYPE_HASH_OF_MAPS as u32 => BPF_MAP_TYPE_HASH_OF_MAPS, x if x == BPF_MAP_TYPE_DEVMAP as u32 => BPF_MAP_TYPE_DEVMAP, @@ -42,7 +35,6 @@ impl TryFrom for crate::generated::bpf_map_type { x if x == BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED as u32 => { BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED } - x if x == BPF_MAP_TYPE_CGRP_STORAGE as u32 => BPF_MAP_TYPE_CGRP_STORAGE, x if x == BPF_MAP_TYPE_REUSEPORT_SOCKARRAY as u32 => BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, x if x == BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED as u32 => { BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED @@ -58,7 +50,8 @@ impl TryFrom for crate::generated::bpf_map_type { x if x == BPF_MAP_TYPE_BLOOM_FILTER as u32 => BPF_MAP_TYPE_BLOOM_FILTER, x if x == BPF_MAP_TYPE_USER_RINGBUF as u32 => BPF_MAP_TYPE_USER_RINGBUF, x if x == BPF_MAP_TYPE_CGRP_STORAGE as u32 => BPF_MAP_TYPE_CGRP_STORAGE, - _ => return Err(InvalidMapTypeError { map_type }), + x if x == BPF_MAP_TYPE_ARENA as u32 => BPF_MAP_TYPE_ARENA, + _ => return Err(InvalidTypeBinding { value: map_type }), }) } } diff --git a/aya-obj/src/obj.rs b/aya-obj/src/obj.rs index 429388a0..be1170f9 100644 --- a/aya-obj/src/obj.rs +++ b/aya-obj/src/obj.rs @@ -987,6 +987,12 @@ pub enum ParseError { NoBTF, } +/// Invalid bindings to the bpf type from the parsed/received value. +pub struct InvalidTypeBinding { + /// The value parsed/received. + pub value: T, +} + /// The kind of an ELF section. #[derive(Debug, Copy, Clone, Eq, PartialEq)] pub enum EbpfSectionKind { diff --git a/aya-obj/src/programs/mod.rs b/aya-obj/src/programs/mod.rs index 6b66b005..b6e91e7a 100644 --- a/aya-obj/src/programs/mod.rs +++ b/aya-obj/src/programs/mod.rs @@ -3,6 +3,7 @@ pub mod cgroup_sock; pub mod cgroup_sock_addr; pub mod cgroup_sockopt; +mod types; pub mod xdp; pub use cgroup_sock::CgroupSockAttachType; diff --git a/aya-obj/src/programs/types.rs b/aya-obj/src/programs/types.rs new file mode 100644 index 00000000..792f562b --- /dev/null +++ b/aya-obj/src/programs/types.rs @@ -0,0 +1,51 @@ +//! Program type bindings. + +use crate::{ + generated::bpf_prog_type::{self, *}, + InvalidTypeBinding, +}; + +impl TryFrom for bpf_prog_type { + type Error = InvalidTypeBinding; + + fn try_from(prog_type: u32) -> Result { + Ok(match prog_type { + x if x == BPF_PROG_TYPE_UNSPEC as u32 => BPF_PROG_TYPE_UNSPEC, + x if x == BPF_PROG_TYPE_SOCKET_FILTER as u32 => BPF_PROG_TYPE_SOCKET_FILTER, + x if x == BPF_PROG_TYPE_KPROBE as u32 => BPF_PROG_TYPE_KPROBE, + x if x == BPF_PROG_TYPE_SCHED_CLS as u32 => BPF_PROG_TYPE_SCHED_CLS, + x if x == BPF_PROG_TYPE_SCHED_ACT as u32 => BPF_PROG_TYPE_SCHED_ACT, + x if x == BPF_PROG_TYPE_TRACEPOINT as u32 => BPF_PROG_TYPE_TRACEPOINT, + x if x == BPF_PROG_TYPE_XDP as u32 => BPF_PROG_TYPE_XDP, + x if x == BPF_PROG_TYPE_PERF_EVENT as u32 => BPF_PROG_TYPE_PERF_EVENT, + x if x == BPF_PROG_TYPE_CGROUP_SKB as u32 => BPF_PROG_TYPE_CGROUP_SKB, + x if x == BPF_PROG_TYPE_CGROUP_SOCK as u32 => BPF_PROG_TYPE_CGROUP_SOCK, + x if x == BPF_PROG_TYPE_LWT_IN as u32 => BPF_PROG_TYPE_LWT_IN, + x if x == BPF_PROG_TYPE_LWT_OUT as u32 => BPF_PROG_TYPE_LWT_OUT, + x if x == BPF_PROG_TYPE_LWT_XMIT as u32 => BPF_PROG_TYPE_LWT_XMIT, + x if x == BPF_PROG_TYPE_SOCK_OPS as u32 => BPF_PROG_TYPE_SOCK_OPS, + x if x == BPF_PROG_TYPE_SK_SKB as u32 => BPF_PROG_TYPE_SK_SKB, + x if x == BPF_PROG_TYPE_CGROUP_DEVICE as u32 => BPF_PROG_TYPE_CGROUP_DEVICE, + x if x == BPF_PROG_TYPE_SK_MSG as u32 => BPF_PROG_TYPE_SK_MSG, + x if x == BPF_PROG_TYPE_RAW_TRACEPOINT as u32 => BPF_PROG_TYPE_RAW_TRACEPOINT, + x if x == BPF_PROG_TYPE_CGROUP_SOCK_ADDR as u32 => BPF_PROG_TYPE_CGROUP_SOCK_ADDR, + x if x == BPF_PROG_TYPE_LWT_SEG6LOCAL as u32 => BPF_PROG_TYPE_LWT_SEG6LOCAL, + x if x == BPF_PROG_TYPE_LIRC_MODE2 as u32 => BPF_PROG_TYPE_LIRC_MODE2, + x if x == BPF_PROG_TYPE_SK_REUSEPORT as u32 => BPF_PROG_TYPE_SK_REUSEPORT, + x if x == BPF_PROG_TYPE_FLOW_DISSECTOR as u32 => BPF_PROG_TYPE_FLOW_DISSECTOR, + x if x == BPF_PROG_TYPE_CGROUP_SYSCTL as u32 => BPF_PROG_TYPE_CGROUP_SYSCTL, + x if x == BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE as u32 => { + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE + } + x if x == BPF_PROG_TYPE_CGROUP_SOCKOPT as u32 => BPF_PROG_TYPE_CGROUP_SOCKOPT, + x if x == BPF_PROG_TYPE_TRACING as u32 => BPF_PROG_TYPE_TRACING, + x if x == BPF_PROG_TYPE_STRUCT_OPS as u32 => BPF_PROG_TYPE_STRUCT_OPS, + x if x == BPF_PROG_TYPE_EXT as u32 => BPF_PROG_TYPE_EXT, + x if x == BPF_PROG_TYPE_LSM as u32 => BPF_PROG_TYPE_LSM, + x if x == BPF_PROG_TYPE_SK_LOOKUP as u32 => BPF_PROG_TYPE_SK_LOOKUP, + x if x == BPF_PROG_TYPE_SYSCALL as u32 => BPF_PROG_TYPE_SYSCALL, + x if x == BPF_PROG_TYPE_NETFILTER as u32 => BPF_PROG_TYPE_NETFILTER, + _ => return Err(InvalidTypeBinding { value: prog_type }), + }) + } +} diff --git a/aya/src/maps/mod.rs b/aya/src/maps/mod.rs index 00585a13..e914d052 100644 --- a/aya/src/maps/mod.rs +++ b/aya/src/maps/mod.rs @@ -59,10 +59,9 @@ use std::{ ptr, }; -use aya_obj::generated::bpf_map_type; +use aya_obj::{generated::bpf_map_type, InvalidTypeBinding}; use libc::{getrlimit, rlim_t, rlimit, RLIMIT_MEMLOCK, RLIM_INFINITY}; use log::warn; -use obj::maps::InvalidMapTypeError; use thiserror::Error; use crate::{ @@ -203,13 +202,10 @@ pub enum MapError { }, } -// Note that this is not just derived using #[from] because InvalidMapTypeError cannot implement -// Error due the the fact that aya-obj is no_std and error_in_core is not stabilized -// (https://github.com/rust-lang/rust/issues/103765). -impl From for MapError { - fn from(e: InvalidMapTypeError) -> Self { - let InvalidMapTypeError { map_type } = e; - Self::InvalidMapType { map_type } +impl From> for MapError { + fn from(e: InvalidTypeBinding) -> Self { + let InvalidTypeBinding { value } = e; + Self::InvalidMapType { map_type: value } } } diff --git a/xtask/public-api/aya-obj.txt b/xtask/public-api/aya-obj.txt index 10e93ce2..5014c91c 100644 --- a/xtask/public-api/aya-obj.txt +++ b/xtask/public-api/aya-obj.txt @@ -1458,6 +1458,9 @@ impl core::convert::From aya_obj::generated::bpf_attach_type impl core::convert::From for aya_obj::generated::bpf_attach_type pub fn aya_obj::generated::bpf_attach_type::from(value: aya_obj::programs::xdp::XdpAttachType) -> Self +impl core::convert::TryFrom for aya_obj::generated::bpf_attach_type +pub type aya_obj::generated::bpf_attach_type::Error = aya_obj::InvalidTypeBinding +pub fn aya_obj::generated::bpf_attach_type::try_from(attach_type: u32) -> core::result::Result impl core::fmt::Debug for aya_obj::generated::bpf_attach_type pub fn aya_obj::generated::bpf_attach_type::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::hash::Hash for aya_obj::generated::bpf_attach_type @@ -1593,6 +1596,9 @@ pub fn aya_obj::generated::bpf_link_type::clone(&self) -> aya_obj::generated::bp impl core::cmp::Eq for aya_obj::generated::bpf_link_type impl core::cmp::PartialEq for aya_obj::generated::bpf_link_type pub fn aya_obj::generated::bpf_link_type::eq(&self, other: &aya_obj::generated::bpf_link_type) -> bool +impl core::convert::TryFrom for aya_obj::generated::bpf_link_type +pub type aya_obj::generated::bpf_link_type::Error = aya_obj::InvalidTypeBinding +pub fn aya_obj::generated::bpf_link_type::try_from(link_type: u32) -> core::result::Result impl core::fmt::Debug for aya_obj::generated::bpf_link_type pub fn aya_obj::generated::bpf_link_type::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::hash::Hash for aya_obj::generated::bpf_link_type @@ -1673,7 +1679,7 @@ impl core::cmp::Eq for aya_obj::generated::bpf_map_type impl core::cmp::PartialEq for aya_obj::generated::bpf_map_type pub fn aya_obj::generated::bpf_map_type::eq(&self, other: &aya_obj::generated::bpf_map_type) -> bool impl core::convert::TryFrom for aya_obj::generated::bpf_map_type -pub type aya_obj::generated::bpf_map_type::Error = aya_obj::maps::InvalidMapTypeError +pub type aya_obj::generated::bpf_map_type::Error = aya_obj::InvalidTypeBinding pub fn aya_obj::generated::bpf_map_type::try_from(map_type: u32) -> core::result::Result impl core::fmt::Debug for aya_obj::generated::bpf_map_type pub fn aya_obj::generated::bpf_map_type::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result @@ -1749,6 +1755,9 @@ pub fn aya_obj::generated::bpf_prog_type::clone(&self) -> aya_obj::generated::bp impl core::cmp::Eq for aya_obj::generated::bpf_prog_type impl core::cmp::PartialEq for aya_obj::generated::bpf_prog_type pub fn aya_obj::generated::bpf_prog_type::eq(&self, other: &aya_obj::generated::bpf_prog_type) -> bool +impl core::convert::TryFrom for aya_obj::generated::bpf_prog_type +pub type aya_obj::generated::bpf_prog_type::Error = aya_obj::InvalidTypeBinding +pub fn aya_obj::generated::bpf_prog_type::try_from(prog_type: u32) -> core::result::Result impl core::fmt::Debug for aya_obj::generated::bpf_prog_type pub fn aya_obj::generated::bpf_prog_type::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::hash::Hash for aya_obj::generated::bpf_prog_type @@ -6603,6 +6612,7 @@ pub type aya_obj::generated::_bindgen_ty_7 = core::ffi::c_uint pub type aya_obj::generated::_bindgen_ty_8 = core::ffi::c_uint pub type aya_obj::generated::_bindgen_ty_9 = core::ffi::c_uint pub type aya_obj::generated::_bindgen_ty_92 = core::ffi::c_uint +pub mod aya_obj::links pub mod aya_obj::maps pub enum aya_obj::maps::Map pub aya_obj::maps::Map::Btf(aya_obj::maps::BtfMap) @@ -6806,30 +6816,6 @@ impl core::clone::CloneToUninit for aya_obj::maps::BtfMapDef where T: core::c pub unsafe fn aya_obj::maps::BtfMapDef::clone_to_uninit(&self, dst: *mut T) impl core::convert::From for aya_obj::maps::BtfMapDef pub fn aya_obj::maps::BtfMapDef::from(t: T) -> T -pub struct aya_obj::maps::InvalidMapTypeError -pub aya_obj::maps::InvalidMapTypeError::map_type: u32 -impl core::marker::Freeze for aya_obj::maps::InvalidMapTypeError -impl core::marker::Send for aya_obj::maps::InvalidMapTypeError -impl core::marker::Sync for aya_obj::maps::InvalidMapTypeError -impl core::marker::Unpin for aya_obj::maps::InvalidMapTypeError -impl core::panic::unwind_safe::RefUnwindSafe for aya_obj::maps::InvalidMapTypeError -impl core::panic::unwind_safe::UnwindSafe for aya_obj::maps::InvalidMapTypeError -impl core::convert::Into for aya_obj::maps::InvalidMapTypeError where U: core::convert::From -pub fn aya_obj::maps::InvalidMapTypeError::into(self) -> U -impl core::convert::TryFrom for aya_obj::maps::InvalidMapTypeError where U: core::convert::Into -pub type aya_obj::maps::InvalidMapTypeError::Error = core::convert::Infallible -pub fn aya_obj::maps::InvalidMapTypeError::try_from(value: U) -> core::result::Result>::Error> -impl core::convert::TryInto for aya_obj::maps::InvalidMapTypeError where U: core::convert::TryFrom -pub type aya_obj::maps::InvalidMapTypeError::Error = >::Error -pub fn aya_obj::maps::InvalidMapTypeError::try_into(self) -> core::result::Result>::Error> -impl core::any::Any for aya_obj::maps::InvalidMapTypeError where T: 'static + core::marker::Sized -pub fn aya_obj::maps::InvalidMapTypeError::type_id(&self) -> core::any::TypeId -impl core::borrow::Borrow for aya_obj::maps::InvalidMapTypeError where T: core::marker::Sized -pub fn aya_obj::maps::InvalidMapTypeError::borrow(&self) -> &T -impl core::borrow::BorrowMut for aya_obj::maps::InvalidMapTypeError where T: core::marker::Sized -pub fn aya_obj::maps::InvalidMapTypeError::borrow_mut(&mut self) -> &mut T -impl core::convert::From for aya_obj::maps::InvalidMapTypeError -pub fn aya_obj::maps::InvalidMapTypeError::from(t: T) -> T pub struct aya_obj::maps::LegacyMap pub aya_obj::maps::LegacyMap::data: alloc::vec::Vec pub aya_obj::maps::LegacyMap::def: aya_obj::maps::bpf_map_def @@ -7191,6 +7177,30 @@ impl core::clone::CloneToUninit for aya_obj::Function where T: core::clone::C pub unsafe fn aya_obj::Function::clone_to_uninit(&self, dst: *mut T) impl core::convert::From for aya_obj::Function pub fn aya_obj::Function::from(t: T) -> T +pub struct aya_obj::obj::InvalidTypeBinding +pub aya_obj::obj::InvalidTypeBinding::value: T +impl core::marker::Freeze for aya_obj::InvalidTypeBinding where T: core::marker::Freeze +impl core::marker::Send for aya_obj::InvalidTypeBinding where T: core::marker::Send +impl core::marker::Sync for aya_obj::InvalidTypeBinding where T: core::marker::Sync +impl core::marker::Unpin for aya_obj::InvalidTypeBinding where T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya_obj::InvalidTypeBinding where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya_obj::InvalidTypeBinding where T: core::panic::unwind_safe::UnwindSafe +impl core::convert::Into for aya_obj::InvalidTypeBinding where U: core::convert::From +pub fn aya_obj::InvalidTypeBinding::into(self) -> U +impl core::convert::TryFrom for aya_obj::InvalidTypeBinding where U: core::convert::Into +pub type aya_obj::InvalidTypeBinding::Error = core::convert::Infallible +pub fn aya_obj::InvalidTypeBinding::try_from(value: U) -> core::result::Result>::Error> +impl core::convert::TryInto for aya_obj::InvalidTypeBinding where U: core::convert::TryFrom +pub type aya_obj::InvalidTypeBinding::Error = >::Error +pub fn aya_obj::InvalidTypeBinding::try_into(self) -> core::result::Result>::Error> +impl core::any::Any for aya_obj::InvalidTypeBinding where T: 'static + core::marker::Sized +pub fn aya_obj::InvalidTypeBinding::type_id(&self) -> core::any::TypeId +impl core::borrow::Borrow for aya_obj::InvalidTypeBinding where T: core::marker::Sized +pub fn aya_obj::InvalidTypeBinding::borrow(&self) -> &T +impl core::borrow::BorrowMut for aya_obj::InvalidTypeBinding where T: core::marker::Sized +pub fn aya_obj::InvalidTypeBinding::borrow_mut(&mut self) -> &mut T +impl core::convert::From for aya_obj::InvalidTypeBinding +pub fn aya_obj::InvalidTypeBinding::from(t: T) -> T pub struct aya_obj::obj::Object pub aya_obj::obj::Object::btf: core::option::Option pub aya_obj::obj::Object::btf_ext: core::option::Option @@ -8025,6 +8035,30 @@ impl core::clone::CloneToUninit for aya_obj::Function where T: core::clone::C pub unsafe fn aya_obj::Function::clone_to_uninit(&self, dst: *mut T) impl core::convert::From for aya_obj::Function pub fn aya_obj::Function::from(t: T) -> T +pub struct aya_obj::InvalidTypeBinding +pub aya_obj::InvalidTypeBinding::value: T +impl core::marker::Freeze for aya_obj::InvalidTypeBinding where T: core::marker::Freeze +impl core::marker::Send for aya_obj::InvalidTypeBinding where T: core::marker::Send +impl core::marker::Sync for aya_obj::InvalidTypeBinding where T: core::marker::Sync +impl core::marker::Unpin for aya_obj::InvalidTypeBinding where T: core::marker::Unpin +impl core::panic::unwind_safe::RefUnwindSafe for aya_obj::InvalidTypeBinding where T: core::panic::unwind_safe::RefUnwindSafe +impl core::panic::unwind_safe::UnwindSafe for aya_obj::InvalidTypeBinding where T: core::panic::unwind_safe::UnwindSafe +impl core::convert::Into for aya_obj::InvalidTypeBinding where U: core::convert::From +pub fn aya_obj::InvalidTypeBinding::into(self) -> U +impl core::convert::TryFrom for aya_obj::InvalidTypeBinding where U: core::convert::Into +pub type aya_obj::InvalidTypeBinding::Error = core::convert::Infallible +pub fn aya_obj::InvalidTypeBinding::try_from(value: U) -> core::result::Result>::Error> +impl core::convert::TryInto for aya_obj::InvalidTypeBinding where U: core::convert::TryFrom +pub type aya_obj::InvalidTypeBinding::Error = >::Error +pub fn aya_obj::InvalidTypeBinding::try_into(self) -> core::result::Result>::Error> +impl core::any::Any for aya_obj::InvalidTypeBinding where T: 'static + core::marker::Sized +pub fn aya_obj::InvalidTypeBinding::type_id(&self) -> core::any::TypeId +impl core::borrow::Borrow for aya_obj::InvalidTypeBinding where T: core::marker::Sized +pub fn aya_obj::InvalidTypeBinding::borrow(&self) -> &T +impl core::borrow::BorrowMut for aya_obj::InvalidTypeBinding where T: core::marker::Sized +pub fn aya_obj::InvalidTypeBinding::borrow_mut(&mut self) -> &mut T +impl core::convert::From for aya_obj::InvalidTypeBinding +pub fn aya_obj::InvalidTypeBinding::from(t: T) -> T pub struct aya_obj::Object pub aya_obj::Object::btf: core::option::Option pub aya_obj::Object::btf_ext: core::option::Option diff --git a/xtask/public-api/aya.txt b/xtask/public-api/aya.txt index 0024ca71..0f46ef74 100644 --- a/xtask/public-api/aya.txt +++ b/xtask/public-api/aya.txt @@ -1371,8 +1371,8 @@ impl core::convert::From for aya::programs::ProgramError pub fn aya::programs::ProgramError::from(source: aya::maps::MapError) -> Self impl core::convert::From for aya::maps::MapError pub fn aya::maps::MapError::from(source: aya::sys::SyscallError) -> Self -impl core::convert::From for aya::maps::MapError -pub fn aya::maps::MapError::from(e: aya_obj::maps::InvalidMapTypeError) -> Self +impl core::convert::From> for aya::maps::MapError +pub fn aya::maps::MapError::from(e: aya_obj::obj::InvalidTypeBinding) -> Self impl core::convert::From for aya::maps::MapError pub fn aya::maps::MapError::from(source: std::io::error::Error) -> Self impl core::error::Error for aya::maps::MapError