Merge pull request #682 from dave-tucker/public-api

xtask: Add cargo-public-api
reviewable/pr691/r1
Dave Tucker 1 year ago committed by GitHub
commit e30df50fb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -26,16 +26,21 @@ jobs:
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- run: cargo install taplo-cli - uses: taiki-e/install-action@v2
with:
tool: cargo-hack,taplo-cli
- run: taplo fmt --check - run: taplo fmt --check
- name: Check formatting - name: Check formatting
run: cargo fmt --all -- --check run: cargo fmt --all -- --check
- uses: taiki-e/install-action@cargo-hack
- name: Run clippy - name: Run clippy
run: cargo hack clippy --all-targets --feature-powerset --workspace -- --deny warnings run: cargo hack clippy --all-targets --feature-powerset --workspace -- --deny warnings
- name: Check public API
run: cargo xtask public-api
- name: Run miri - name: Run miri
run: | run: |
cargo hack miri test --all-targets --feature-powerset \ cargo hack miri test --all-targets --feature-powerset \

@ -61,6 +61,8 @@ bytes = { version = "1", default-features = false }
cargo_metadata = { version = "0.17.0", default-features = false } cargo_metadata = { version = "0.17.0", default-features = false }
clap = { version = "4", default-features = false } clap = { version = "4", default-features = false }
core-error = { version = "0.0.0", default-features = false } core-error = { version = "0.0.0", default-features = false }
dialoguer = { version = "0.10", default-features = false }
diff = { version = "0.1.13", default-features = false }
env_logger = { version = "0.10", default-features = false } env_logger = { version = "0.10", default-features = false }
futures = { version = "0.3.12", default-features = false } futures = { version = "0.3.12", default-features = false }
hashbrown = { version = "0.14", default-features = false } hashbrown = { version = "0.14", default-features = false }
@ -73,8 +75,11 @@ num_enum = { version = "0.6", default-features = false }
object = { version = "0.31", default-features = false } object = { version = "0.31", default-features = false }
parking_lot = { version = "0.12.0", default-features = false } parking_lot = { version = "0.12.0", default-features = false }
proc-macro2 = { version = "1", default-features = false } proc-macro2 = { version = "1", default-features = false }
public-api = { version = "0.31.2", default-features = false }
quote = { version = "1", default-features = false } quote = { version = "1", default-features = false }
rbpf = { version = "0.2.0", default-features = false } rbpf = { version = "0.2.0", default-features = false }
rustdoc-json = { version = "0.8.6", default-features = false }
rustup-toolchain = { version = "0.1.5", default-features = false }
syn = { version = "2", default-features = false } syn = { version = "2", default-features = false }
tempfile = { version = "3", default-features = false } tempfile = { version = "3", default-features = false }
testing_logger = { version = "0.1.1", default-features = false } testing_logger = { version = "0.1.1", default-features = false }

@ -3,15 +3,22 @@ name = "xtask"
version = "0.1.0" version = "0.1.0"
authors = ["Alessandro Decina <alessandro.d@gmail.com>"] authors = ["Alessandro Decina <alessandro.d@gmail.com>"]
edition = "2021" edition = "2021"
publish = false
[dependencies] [dependencies]
anyhow = { workspace = true, default-features = true } anyhow = { workspace = true, default-features = true }
aya-tool = { workspace = true } aya-tool = { workspace = true }
cargo_metadata = { workspace = true } cargo_metadata = { workspace = true }
clap = { workspace = true, default-features = true, features = ["derive"] } clap = { workspace = true, default-features = true, features = ["derive"] }
dialoguer = { workspace = true }
diff = { workspace = true }
indoc = { workspace = true } indoc = { workspace = true }
proc-macro2 = { workspace = true } proc-macro2 = { workspace = true }
public-api = { workspace = true }
quote = { workspace = true } quote = { workspace = true }
rustdoc-json = { workspace = true }
rustup-toolchain = { workspace = true }
syn = { workspace = true } syn = { workspace = true }
thiserror = { workspace = true }
tempfile = { workspace = true } tempfile = { workspace = true }
which = { workspace = true } which = { workspace = true }

File diff suppressed because it is too large Load Diff

@ -0,0 +1,30 @@
pub mod aya_bpf_cty
pub type aya_bpf_cty::c_char = aya_bpf_cty::c_schar
pub type aya_bpf_cty::c_double = f64
pub type aya_bpf_cty::c_float = f32
pub type aya_bpf_cty::c_int = i32
pub type aya_bpf_cty::c_long = i64
pub type aya_bpf_cty::c_longlong = i64
pub type aya_bpf_cty::c_schar = i8
pub type aya_bpf_cty::c_short = i16
pub type aya_bpf_cty::c_uchar = u8
pub type aya_bpf_cty::c_uint = u32
pub type aya_bpf_cty::c_ulong = u64
pub type aya_bpf_cty::c_ulonglong = u64
pub type aya_bpf_cty::c_ushort = u16
pub type aya_bpf_cty::c_void = core::ffi::c_void
pub type aya_bpf_cty::int16_t = i16
pub type aya_bpf_cty::int32_t = i32
pub type aya_bpf_cty::int64_t = i64
pub type aya_bpf_cty::int8_t = i8
pub type aya_bpf_cty::intmax_t = i64
pub type aya_bpf_cty::intptr_t = isize
pub type aya_bpf_cty::ptrdiff_t = isize
pub type aya_bpf_cty::size_t = usize
pub type aya_bpf_cty::ssize_t = isize
pub type aya_bpf_cty::uint16_t = u16
pub type aya_bpf_cty::uint32_t = u32
pub type aya_bpf_cty::uint64_t = u64
pub type aya_bpf_cty::uint8_t = u8
pub type aya_bpf_cty::uintmax_t = u64
pub type aya_bpf_cty::uintptr_t = usize

@ -0,0 +1,27 @@
pub mod aya_bpf_macros
pub proc macro aya_bpf_macros::#[btf_tracepoint]
pub proc macro aya_bpf_macros::#[cgroup_device]
pub proc macro aya_bpf_macros::#[cgroup_skb]
pub proc macro aya_bpf_macros::#[cgroup_sock]
pub proc macro aya_bpf_macros::#[cgroup_sock_addr]
pub proc macro aya_bpf_macros::#[cgroup_sockopt]
pub proc macro aya_bpf_macros::#[cgroup_sysctl]
pub proc macro aya_bpf_macros::#[classifier]
pub proc macro aya_bpf_macros::#[fentry]
pub proc macro aya_bpf_macros::#[fexit]
pub proc macro aya_bpf_macros::#[kprobe]
pub proc macro aya_bpf_macros::#[kretprobe]
pub proc macro aya_bpf_macros::#[lsm]
pub proc macro aya_bpf_macros::#[map]
pub proc macro aya_bpf_macros::#[perf_event]
pub proc macro aya_bpf_macros::#[raw_tracepoint]
pub proc macro aya_bpf_macros::#[sk_lookup]
pub proc macro aya_bpf_macros::#[sk_msg]
pub proc macro aya_bpf_macros::#[sock_ops]
pub proc macro aya_bpf_macros::#[socket_filter]
pub proc macro aya_bpf_macros::#[stream_parser]
pub proc macro aya_bpf_macros::#[stream_verdict]
pub proc macro aya_bpf_macros::#[tracepoint]
pub proc macro aya_bpf_macros::#[uprobe]
pub proc macro aya_bpf_macros::#[uretprobe]
pub proc macro aya_bpf_macros::#[xdp]

File diff suppressed because it is too large Load Diff

@ -0,0 +1,252 @@
pub mod aya_log_common
#[repr(u8)] pub enum aya_log_common::Argument
pub aya_log_common::Argument::ArrU16Len8
pub aya_log_common::Argument::ArrU8Len16
pub aya_log_common::Argument::ArrU8Len6
pub aya_log_common::Argument::Bytes
pub aya_log_common::Argument::DisplayHint
pub aya_log_common::Argument::F32
pub aya_log_common::Argument::F64
pub aya_log_common::Argument::I16
pub aya_log_common::Argument::I32
pub aya_log_common::Argument::I64
pub aya_log_common::Argument::I8
pub aya_log_common::Argument::Isize
pub aya_log_common::Argument::Str
pub aya_log_common::Argument::U16
pub aya_log_common::Argument::U32
pub aya_log_common::Argument::U64
pub aya_log_common::Argument::U8
pub aya_log_common::Argument::Usize
impl core::clone::Clone for aya_log_common::Argument
pub fn aya_log_common::Argument::clone(&self) -> aya_log_common::Argument
impl core::fmt::Debug for aya_log_common::Argument
pub fn aya_log_common::Argument::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Copy for aya_log_common::Argument
impl core::marker::Send for aya_log_common::Argument
impl core::marker::Sync for aya_log_common::Argument
impl core::marker::Unpin for aya_log_common::Argument
impl core::panic::unwind_safe::RefUnwindSafe for aya_log_common::Argument
impl core::panic::unwind_safe::UnwindSafe for aya_log_common::Argument
impl<T, U> core::convert::Into<U> for aya_log_common::Argument where U: core::convert::From<T>
pub fn aya_log_common::Argument::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log_common::Argument where U: core::convert::Into<T>
pub type aya_log_common::Argument::Error = core::convert::Infallible
pub fn aya_log_common::Argument::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log_common::Argument where U: core::convert::TryFrom<T>
pub type aya_log_common::Argument::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log_common::Argument::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log_common::Argument where T: 'static + core::marker::Sized
pub fn aya_log_common::Argument::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log_common::Argument where T: core::marker::Sized
pub fn aya_log_common::Argument::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log_common::Argument where T: core::marker::Sized
pub fn aya_log_common::Argument::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log_common::Argument
pub fn aya_log_common::Argument::from(t: T) -> T
#[repr(u8)] pub enum aya_log_common::DisplayHint
pub aya_log_common::DisplayHint::Default = 1
pub aya_log_common::DisplayHint::Ip
pub aya_log_common::DisplayHint::LowerHex
pub aya_log_common::DisplayHint::LowerMac
pub aya_log_common::DisplayHint::UpperHex
pub aya_log_common::DisplayHint::UpperMac
impl aya_log_common::WriteToBuf for aya_log_common::DisplayHint
pub fn aya_log_common::DisplayHint::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl core::convert::From<aya_log_common::DisplayHint> for u8
pub fn u8::from(enum_value: aya_log_common::DisplayHint) -> Self
impl core::clone::Clone for aya_log_common::DisplayHint
pub fn aya_log_common::DisplayHint::clone(&self) -> aya_log_common::DisplayHint
impl core::cmp::Eq for aya_log_common::DisplayHint
impl core::cmp::PartialEq<aya_log_common::DisplayHint> for aya_log_common::DisplayHint
pub fn aya_log_common::DisplayHint::eq(&self, other: &aya_log_common::DisplayHint) -> bool
impl core::fmt::Debug for aya_log_common::DisplayHint
pub fn aya_log_common::DisplayHint::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Copy for aya_log_common::DisplayHint
impl core::marker::StructuralEq for aya_log_common::DisplayHint
impl core::marker::StructuralPartialEq for aya_log_common::DisplayHint
impl core::marker::Send for aya_log_common::DisplayHint
impl core::marker::Sync for aya_log_common::DisplayHint
impl core::marker::Unpin for aya_log_common::DisplayHint
impl core::panic::unwind_safe::RefUnwindSafe for aya_log_common::DisplayHint
impl core::panic::unwind_safe::UnwindSafe for aya_log_common::DisplayHint
impl<T, U> core::convert::Into<U> for aya_log_common::DisplayHint where U: core::convert::From<T>
pub fn aya_log_common::DisplayHint::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log_common::DisplayHint where U: core::convert::Into<T>
pub type aya_log_common::DisplayHint::Error = core::convert::Infallible
pub fn aya_log_common::DisplayHint::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log_common::DisplayHint where U: core::convert::TryFrom<T>
pub type aya_log_common::DisplayHint::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log_common::DisplayHint::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log_common::DisplayHint where T: 'static + core::marker::Sized
pub fn aya_log_common::DisplayHint::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log_common::DisplayHint where T: core::marker::Sized
pub fn aya_log_common::DisplayHint::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log_common::DisplayHint where T: core::marker::Sized
pub fn aya_log_common::DisplayHint::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log_common::DisplayHint
pub fn aya_log_common::DisplayHint::from(t: T) -> T
#[repr(u8)] pub enum aya_log_common::Level
pub aya_log_common::Level::Debug
pub aya_log_common::Level::Error = 1
pub aya_log_common::Level::Info
pub aya_log_common::Level::Trace
pub aya_log_common::Level::Warn
impl core::convert::From<aya_log_common::Level> for u8
pub fn u8::from(enum_value: aya_log_common::Level) -> Self
impl core::clone::Clone for aya_log_common::Level
pub fn aya_log_common::Level::clone(&self) -> aya_log_common::Level
impl core::cmp::Eq for aya_log_common::Level
impl core::cmp::PartialEq<aya_log_common::Level> for aya_log_common::Level
pub fn aya_log_common::Level::eq(&self, other: &aya_log_common::Level) -> bool
impl core::fmt::Debug for aya_log_common::Level
pub fn aya_log_common::Level::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::hash::Hash for aya_log_common::Level
pub fn aya_log_common::Level::hash<__H: core::hash::Hasher>(&self, state: &mut __H)
impl core::marker::Copy for aya_log_common::Level
impl core::marker::StructuralEq for aya_log_common::Level
impl core::marker::StructuralPartialEq for aya_log_common::Level
impl core::marker::Send for aya_log_common::Level
impl core::marker::Sync for aya_log_common::Level
impl core::marker::Unpin for aya_log_common::Level
impl core::panic::unwind_safe::RefUnwindSafe for aya_log_common::Level
impl core::panic::unwind_safe::UnwindSafe for aya_log_common::Level
impl<T, U> core::convert::Into<U> for aya_log_common::Level where U: core::convert::From<T>
pub fn aya_log_common::Level::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log_common::Level where U: core::convert::Into<T>
pub type aya_log_common::Level::Error = core::convert::Infallible
pub fn aya_log_common::Level::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log_common::Level where U: core::convert::TryFrom<T>
pub type aya_log_common::Level::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log_common::Level::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log_common::Level where T: 'static + core::marker::Sized
pub fn aya_log_common::Level::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log_common::Level where T: core::marker::Sized
pub fn aya_log_common::Level::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log_common::Level where T: core::marker::Sized
pub fn aya_log_common::Level::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log_common::Level
pub fn aya_log_common::Level::from(t: T) -> T
#[repr(u8)] pub enum aya_log_common::RecordField
pub aya_log_common::RecordField::File
pub aya_log_common::RecordField::Level
pub aya_log_common::RecordField::Line
pub aya_log_common::RecordField::Module
pub aya_log_common::RecordField::NumArgs
pub aya_log_common::RecordField::Target = 1
impl core::clone::Clone for aya_log_common::RecordField
pub fn aya_log_common::RecordField::clone(&self) -> aya_log_common::RecordField
impl core::fmt::Debug for aya_log_common::RecordField
pub fn aya_log_common::RecordField::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Copy for aya_log_common::RecordField
impl core::marker::Send for aya_log_common::RecordField
impl core::marker::Sync for aya_log_common::RecordField
impl core::marker::Unpin for aya_log_common::RecordField
impl core::panic::unwind_safe::RefUnwindSafe for aya_log_common::RecordField
impl core::panic::unwind_safe::UnwindSafe for aya_log_common::RecordField
impl<T, U> core::convert::Into<U> for aya_log_common::RecordField where U: core::convert::From<T>
pub fn aya_log_common::RecordField::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log_common::RecordField where U: core::convert::Into<T>
pub type aya_log_common::RecordField::Error = core::convert::Infallible
pub fn aya_log_common::RecordField::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log_common::RecordField where U: core::convert::TryFrom<T>
pub type aya_log_common::RecordField::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log_common::RecordField::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log_common::RecordField where T: 'static + core::marker::Sized
pub fn aya_log_common::RecordField::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log_common::RecordField where T: core::marker::Sized
pub fn aya_log_common::RecordField::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log_common::RecordField where T: core::marker::Sized
pub fn aya_log_common::RecordField::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log_common::RecordField
pub fn aya_log_common::RecordField::from(t: T) -> T
pub const aya_log_common::LOG_BUF_CAPACITY: usize = 8_192usize
pub const aya_log_common::LOG_FIELDS: usize = 6usize
pub trait aya_log_common::DefaultFormatter
impl aya_log_common::DefaultFormatter for &str
impl aya_log_common::DefaultFormatter for bool
impl aya_log_common::DefaultFormatter for char
impl aya_log_common::DefaultFormatter for f32
impl aya_log_common::DefaultFormatter for f64
impl aya_log_common::DefaultFormatter for i16
impl aya_log_common::DefaultFormatter for i32
impl aya_log_common::DefaultFormatter for i64
impl aya_log_common::DefaultFormatter for i8
impl aya_log_common::DefaultFormatter for isize
impl aya_log_common::DefaultFormatter for str
impl aya_log_common::DefaultFormatter for u16
impl aya_log_common::DefaultFormatter for u32
impl aya_log_common::DefaultFormatter for u64
impl aya_log_common::DefaultFormatter for u8
impl aya_log_common::DefaultFormatter for usize
pub trait aya_log_common::IpFormatter
impl aya_log_common::IpFormatter for [u16; 8]
impl aya_log_common::IpFormatter for [u8; 16]
impl aya_log_common::IpFormatter for u32
pub trait aya_log_common::LowerHexFormatter
impl aya_log_common::LowerHexFormatter for &[u8]
impl aya_log_common::LowerHexFormatter for i16
impl aya_log_common::LowerHexFormatter for i32
impl aya_log_common::LowerHexFormatter for i64
impl aya_log_common::LowerHexFormatter for i8
impl aya_log_common::LowerHexFormatter for isize
impl aya_log_common::LowerHexFormatter for u16
impl aya_log_common::LowerHexFormatter for u32
impl aya_log_common::LowerHexFormatter for u64
impl aya_log_common::LowerHexFormatter for u8
impl aya_log_common::LowerHexFormatter for usize
pub trait aya_log_common::LowerMacFormatter
impl aya_log_common::LowerMacFormatter for [u8; 6]
pub trait aya_log_common::UpperHexFormatter
impl aya_log_common::UpperHexFormatter for &[u8]
impl aya_log_common::UpperHexFormatter for i16
impl aya_log_common::UpperHexFormatter for i32
impl aya_log_common::UpperHexFormatter for i64
impl aya_log_common::UpperHexFormatter for i8
impl aya_log_common::UpperHexFormatter for isize
impl aya_log_common::UpperHexFormatter for u16
impl aya_log_common::UpperHexFormatter for u32
impl aya_log_common::UpperHexFormatter for u64
impl aya_log_common::UpperHexFormatter for u8
impl aya_log_common::UpperHexFormatter for usize
pub trait aya_log_common::UpperMacFormatter
impl aya_log_common::UpperMacFormatter for [u8; 6]
pub trait aya_log_common::WriteToBuf
pub fn aya_log_common::WriteToBuf::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for &[u8]
pub fn &[u8]::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for &str
pub fn &str::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for [u16; 8]
pub fn [u16; 8]::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for [u8; 16]
pub fn [u8; 16]::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for [u8; 6]
pub fn [u8; 6]::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for aya_log_common::DisplayHint
pub fn aya_log_common::DisplayHint::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for f32
pub fn f32::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for f64
pub fn f64::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for i16
pub fn i16::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for i32
pub fn i32::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for i64
pub fn i64::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for i8
pub fn i8::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for isize
pub fn isize::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for u16
pub fn u16::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for u32
pub fn u32::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for u64
pub fn u64::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for u8
pub fn u8::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
impl aya_log_common::WriteToBuf for usize
pub fn usize::write(self, buf: &mut [u8]) -> core::result::Result<usize, ()>
pub type aya_log_common::LogValueLength = u16

@ -0,0 +1,7 @@
pub mod aya_log_ebpf_macros
pub proc macro aya_log_ebpf_macros::debug!()
pub proc macro aya_log_ebpf_macros::error!()
pub proc macro aya_log_ebpf_macros::info!()
pub proc macro aya_log_ebpf_macros::log!()
pub proc macro aya_log_ebpf_macros::trace!()
pub proc macro aya_log_ebpf_macros::warn!()

@ -0,0 +1,10 @@
pub mod aya_log_ebpf
pub use aya_log_ebpf::LOG_BUF_CAPACITY
pub use aya_log_ebpf::Level
pub use aya_log_ebpf::WriteToBuf
pub use aya_log_ebpf::debug
pub use aya_log_ebpf::error
pub use aya_log_ebpf::info
pub use aya_log_ebpf::log
pub use aya_log_ebpf::trace
pub use aya_log_ebpf::warn

@ -0,0 +1,75 @@
pub mod aya_log_parser
pub enum aya_log_parser::Fragment
pub aya_log_parser::Fragment::Literal(alloc::string::String)
pub aya_log_parser::Fragment::Parameter(aya_log_parser::Parameter)
impl core::clone::Clone for aya_log_parser::Fragment
pub fn aya_log_parser::Fragment::clone(&self) -> aya_log_parser::Fragment
impl core::cmp::Eq for aya_log_parser::Fragment
impl core::cmp::PartialEq<aya_log_parser::Fragment> for aya_log_parser::Fragment
pub fn aya_log_parser::Fragment::eq(&self, other: &aya_log_parser::Fragment) -> bool
impl core::fmt::Debug for aya_log_parser::Fragment
pub fn aya_log_parser::Fragment::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::StructuralEq for aya_log_parser::Fragment
impl core::marker::StructuralPartialEq for aya_log_parser::Fragment
impl core::marker::Send for aya_log_parser::Fragment
impl core::marker::Sync for aya_log_parser::Fragment
impl core::marker::Unpin for aya_log_parser::Fragment
impl core::panic::unwind_safe::RefUnwindSafe for aya_log_parser::Fragment
impl core::panic::unwind_safe::UnwindSafe for aya_log_parser::Fragment
impl<T, U> core::convert::Into<U> for aya_log_parser::Fragment where U: core::convert::From<T>
pub fn aya_log_parser::Fragment::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log_parser::Fragment where U: core::convert::Into<T>
pub type aya_log_parser::Fragment::Error = core::convert::Infallible
pub fn aya_log_parser::Fragment::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log_parser::Fragment where U: core::convert::TryFrom<T>
pub type aya_log_parser::Fragment::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log_parser::Fragment::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> alloc::borrow::ToOwned for aya_log_parser::Fragment where T: core::clone::Clone
pub type aya_log_parser::Fragment::Owned = T
pub fn aya_log_parser::Fragment::clone_into(&self, target: &mut T)
pub fn aya_log_parser::Fragment::to_owned(&self) -> T
impl<T> core::any::Any for aya_log_parser::Fragment where T: 'static + core::marker::Sized
pub fn aya_log_parser::Fragment::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log_parser::Fragment where T: core::marker::Sized
pub fn aya_log_parser::Fragment::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log_parser::Fragment where T: core::marker::Sized
pub fn aya_log_parser::Fragment::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log_parser::Fragment
pub fn aya_log_parser::Fragment::from(t: T) -> T
pub struct aya_log_parser::Parameter
pub aya_log_parser::Parameter::hint: aya_log_common::DisplayHint
impl core::clone::Clone for aya_log_parser::Parameter
pub fn aya_log_parser::Parameter::clone(&self) -> aya_log_parser::Parameter
impl core::cmp::Eq for aya_log_parser::Parameter
impl core::cmp::PartialEq<aya_log_parser::Parameter> for aya_log_parser::Parameter
pub fn aya_log_parser::Parameter::eq(&self, other: &aya_log_parser::Parameter) -> bool
impl core::fmt::Debug for aya_log_parser::Parameter
pub fn aya_log_parser::Parameter::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::StructuralEq for aya_log_parser::Parameter
impl core::marker::StructuralPartialEq for aya_log_parser::Parameter
impl core::marker::Send for aya_log_parser::Parameter
impl core::marker::Sync for aya_log_parser::Parameter
impl core::marker::Unpin for aya_log_parser::Parameter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log_parser::Parameter
impl core::panic::unwind_safe::UnwindSafe for aya_log_parser::Parameter
impl<T, U> core::convert::Into<U> for aya_log_parser::Parameter where U: core::convert::From<T>
pub fn aya_log_parser::Parameter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log_parser::Parameter where U: core::convert::Into<T>
pub type aya_log_parser::Parameter::Error = core::convert::Infallible
pub fn aya_log_parser::Parameter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log_parser::Parameter where U: core::convert::TryFrom<T>
pub type aya_log_parser::Parameter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log_parser::Parameter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> alloc::borrow::ToOwned for aya_log_parser::Parameter where T: core::clone::Clone
pub type aya_log_parser::Parameter::Owned = T
pub fn aya_log_parser::Parameter::clone_into(&self, target: &mut T)
pub fn aya_log_parser::Parameter::to_owned(&self) -> T
impl<T> core::any::Any for aya_log_parser::Parameter where T: 'static + core::marker::Sized
pub fn aya_log_parser::Parameter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log_parser::Parameter where T: core::marker::Sized
pub fn aya_log_parser::Parameter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log_parser::Parameter where T: core::marker::Sized
pub fn aya_log_parser::Parameter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log_parser::Parameter
pub fn aya_log_parser::Parameter::from(t: T) -> T
pub fn aya_log_parser::parse(format_string: &str) -> core::result::Result<alloc::vec::Vec<aya_log_parser::Fragment>, alloc::string::String>

@ -0,0 +1,302 @@
pub mod aya_log
pub enum aya_log::Error
pub aya_log::Error::InvalidOnlineCpu(std::io::error::Error)
pub aya_log::Error::MapError(aya::maps::MapError)
pub aya_log::Error::MapNotFound
pub aya_log::Error::PerfBufferError(aya::maps::perf::perf_buffer::PerfBufferError)
impl core::convert::From<aya::maps::MapError> for aya_log::Error
pub fn aya_log::Error::from(source: aya::maps::MapError) -> Self
impl core::convert::From<aya::maps::perf::perf_buffer::PerfBufferError> for aya_log::Error
pub fn aya_log::Error::from(source: aya::maps::perf::perf_buffer::PerfBufferError) -> Self
impl core::error::Error for aya_log::Error
pub fn aya_log::Error::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
impl core::fmt::Display for aya_log::Error
pub fn aya_log::Error::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Debug for aya_log::Error
pub fn aya_log::Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Send for aya_log::Error
impl core::marker::Sync for aya_log::Error
impl core::marker::Unpin for aya_log::Error
impl !core::panic::unwind_safe::RefUnwindSafe for aya_log::Error
impl !core::panic::unwind_safe::UnwindSafe for aya_log::Error
impl<E> core::any::Provider for aya_log::Error where E: core::error::Error + core::marker::Sized
pub fn aya_log::Error::provide<'a>(&'a self, demand: &mut core::any::Demand<'a>)
impl<T, U> core::convert::Into<U> for aya_log::Error where U: core::convert::From<T>
pub fn aya_log::Error::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::Error where U: core::convert::Into<T>
pub type aya_log::Error::Error = core::convert::Infallible
pub fn aya_log::Error::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::Error where U: core::convert::TryFrom<T>
pub type aya_log::Error::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::Error::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> alloc::string::ToString for aya_log::Error where T: core::fmt::Display + core::marker::Sized
pub fn aya_log::Error::to_string(&self) -> alloc::string::String
impl<T> core::any::Any for aya_log::Error where T: 'static + core::marker::Sized
pub fn aya_log::Error::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::Error where T: core::marker::Sized
pub fn aya_log::Error::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::Error where T: core::marker::Sized
pub fn aya_log::Error::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::Error
pub fn aya_log::Error::from(t: T) -> T
pub struct aya_log::BpfLogger
impl aya_log::BpfLogger
pub fn aya_log::BpfLogger::init(bpf: &mut aya::bpf::Bpf) -> core::result::Result<aya_log::BpfLogger, aya_log::Error>
pub fn aya_log::BpfLogger::init_with_logger<T: log::Log + 'static>(bpf: &mut aya::bpf::Bpf, logger: T) -> core::result::Result<aya_log::BpfLogger, aya_log::Error>
impl core::marker::Send for aya_log::BpfLogger
impl core::marker::Sync for aya_log::BpfLogger
impl core::marker::Unpin for aya_log::BpfLogger
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::BpfLogger
impl core::panic::unwind_safe::UnwindSafe for aya_log::BpfLogger
impl<T, U> core::convert::Into<U> for aya_log::BpfLogger where U: core::convert::From<T>
pub fn aya_log::BpfLogger::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::BpfLogger where U: core::convert::Into<T>
pub type aya_log::BpfLogger::Error = core::convert::Infallible
pub fn aya_log::BpfLogger::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::BpfLogger where U: core::convert::TryFrom<T>
pub type aya_log::BpfLogger::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::BpfLogger::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::BpfLogger where T: 'static + core::marker::Sized
pub fn aya_log::BpfLogger::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::BpfLogger where T: core::marker::Sized
pub fn aya_log::BpfLogger::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::BpfLogger where T: core::marker::Sized
pub fn aya_log::BpfLogger::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::BpfLogger
pub fn aya_log::BpfLogger::from(t: T) -> T
pub struct aya_log::DefaultFormatter
impl<T> aya_log::Formatter<T> for aya_log::DefaultFormatter where T: alloc::string::ToString
pub fn aya_log::DefaultFormatter::format(v: T) -> alloc::string::String
impl core::marker::Send for aya_log::DefaultFormatter
impl core::marker::Sync for aya_log::DefaultFormatter
impl core::marker::Unpin for aya_log::DefaultFormatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::DefaultFormatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::DefaultFormatter
impl<T, U> core::convert::Into<U> for aya_log::DefaultFormatter where U: core::convert::From<T>
pub fn aya_log::DefaultFormatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::DefaultFormatter where U: core::convert::Into<T>
pub type aya_log::DefaultFormatter::Error = core::convert::Infallible
pub fn aya_log::DefaultFormatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::DefaultFormatter where U: core::convert::TryFrom<T>
pub type aya_log::DefaultFormatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::DefaultFormatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::DefaultFormatter where T: 'static + core::marker::Sized
pub fn aya_log::DefaultFormatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::DefaultFormatter where T: core::marker::Sized
pub fn aya_log::DefaultFormatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::DefaultFormatter where T: core::marker::Sized
pub fn aya_log::DefaultFormatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::DefaultFormatter
pub fn aya_log::DefaultFormatter::from(t: T) -> T
pub struct aya_log::Ipv4Formatter
impl<T> aya_log::Formatter<T> for aya_log::Ipv4Formatter where T: core::convert::Into<core::net::ip_addr::Ipv4Addr>
pub fn aya_log::Ipv4Formatter::format(v: T) -> alloc::string::String
impl core::marker::Send for aya_log::Ipv4Formatter
impl core::marker::Sync for aya_log::Ipv4Formatter
impl core::marker::Unpin for aya_log::Ipv4Formatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::Ipv4Formatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::Ipv4Formatter
impl<T, U> core::convert::Into<U> for aya_log::Ipv4Formatter where U: core::convert::From<T>
pub fn aya_log::Ipv4Formatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::Ipv4Formatter where U: core::convert::Into<T>
pub type aya_log::Ipv4Formatter::Error = core::convert::Infallible
pub fn aya_log::Ipv4Formatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::Ipv4Formatter where U: core::convert::TryFrom<T>
pub type aya_log::Ipv4Formatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::Ipv4Formatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::Ipv4Formatter where T: 'static + core::marker::Sized
pub fn aya_log::Ipv4Formatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::Ipv4Formatter where T: core::marker::Sized
pub fn aya_log::Ipv4Formatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::Ipv4Formatter where T: core::marker::Sized
pub fn aya_log::Ipv4Formatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::Ipv4Formatter
pub fn aya_log::Ipv4Formatter::from(t: T) -> T
pub struct aya_log::Ipv6Formatter
impl<T> aya_log::Formatter<T> for aya_log::Ipv6Formatter where T: core::convert::Into<core::net::ip_addr::Ipv6Addr>
pub fn aya_log::Ipv6Formatter::format(v: T) -> alloc::string::String
impl core::marker::Send for aya_log::Ipv6Formatter
impl core::marker::Sync for aya_log::Ipv6Formatter
impl core::marker::Unpin for aya_log::Ipv6Formatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::Ipv6Formatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::Ipv6Formatter
impl<T, U> core::convert::Into<U> for aya_log::Ipv6Formatter where U: core::convert::From<T>
pub fn aya_log::Ipv6Formatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::Ipv6Formatter where U: core::convert::Into<T>
pub type aya_log::Ipv6Formatter::Error = core::convert::Infallible
pub fn aya_log::Ipv6Formatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::Ipv6Formatter where U: core::convert::TryFrom<T>
pub type aya_log::Ipv6Formatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::Ipv6Formatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::Ipv6Formatter where T: 'static + core::marker::Sized
pub fn aya_log::Ipv6Formatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::Ipv6Formatter where T: core::marker::Sized
pub fn aya_log::Ipv6Formatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::Ipv6Formatter where T: core::marker::Sized
pub fn aya_log::Ipv6Formatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::Ipv6Formatter
pub fn aya_log::Ipv6Formatter::from(t: T) -> T
pub struct aya_log::LowerHexDebugFormatter
impl<T> aya_log::Formatter<&[T]> for aya_log::LowerHexDebugFormatter where T: core::fmt::LowerHex
pub fn aya_log::LowerHexDebugFormatter::format(v: &[T]) -> alloc::string::String
impl core::marker::Send for aya_log::LowerHexDebugFormatter
impl core::marker::Sync for aya_log::LowerHexDebugFormatter
impl core::marker::Unpin for aya_log::LowerHexDebugFormatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::LowerHexDebugFormatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::LowerHexDebugFormatter
impl<T, U> core::convert::Into<U> for aya_log::LowerHexDebugFormatter where U: core::convert::From<T>
pub fn aya_log::LowerHexDebugFormatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::LowerHexDebugFormatter where U: core::convert::Into<T>
pub type aya_log::LowerHexDebugFormatter::Error = core::convert::Infallible
pub fn aya_log::LowerHexDebugFormatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::LowerHexDebugFormatter where U: core::convert::TryFrom<T>
pub type aya_log::LowerHexDebugFormatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::LowerHexDebugFormatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::LowerHexDebugFormatter where T: 'static + core::marker::Sized
pub fn aya_log::LowerHexDebugFormatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::LowerHexDebugFormatter where T: core::marker::Sized
pub fn aya_log::LowerHexDebugFormatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::LowerHexDebugFormatter where T: core::marker::Sized
pub fn aya_log::LowerHexDebugFormatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::LowerHexDebugFormatter
pub fn aya_log::LowerHexDebugFormatter::from(t: T) -> T
pub struct aya_log::LowerHexFormatter
impl<T> aya_log::Formatter<T> for aya_log::LowerHexFormatter where T: core::fmt::LowerHex
pub fn aya_log::LowerHexFormatter::format(v: T) -> alloc::string::String
impl core::marker::Send for aya_log::LowerHexFormatter
impl core::marker::Sync for aya_log::LowerHexFormatter
impl core::marker::Unpin for aya_log::LowerHexFormatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::LowerHexFormatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::LowerHexFormatter
impl<T, U> core::convert::Into<U> for aya_log::LowerHexFormatter where U: core::convert::From<T>
pub fn aya_log::LowerHexFormatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::LowerHexFormatter where U: core::convert::Into<T>
pub type aya_log::LowerHexFormatter::Error = core::convert::Infallible
pub fn aya_log::LowerHexFormatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::LowerHexFormatter where U: core::convert::TryFrom<T>
pub type aya_log::LowerHexFormatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::LowerHexFormatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::LowerHexFormatter where T: 'static + core::marker::Sized
pub fn aya_log::LowerHexFormatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::LowerHexFormatter where T: core::marker::Sized
pub fn aya_log::LowerHexFormatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::LowerHexFormatter where T: core::marker::Sized
pub fn aya_log::LowerHexFormatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::LowerHexFormatter
pub fn aya_log::LowerHexFormatter::from(t: T) -> T
pub struct aya_log::LowerMacFormatter
impl aya_log::Formatter<[u8; 6]> for aya_log::LowerMacFormatter
pub fn aya_log::LowerMacFormatter::format(v: [u8; 6]) -> alloc::string::String
impl core::marker::Send for aya_log::LowerMacFormatter
impl core::marker::Sync for aya_log::LowerMacFormatter
impl core::marker::Unpin for aya_log::LowerMacFormatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::LowerMacFormatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::LowerMacFormatter
impl<T, U> core::convert::Into<U> for aya_log::LowerMacFormatter where U: core::convert::From<T>
pub fn aya_log::LowerMacFormatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::LowerMacFormatter where U: core::convert::Into<T>
pub type aya_log::LowerMacFormatter::Error = core::convert::Infallible
pub fn aya_log::LowerMacFormatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::LowerMacFormatter where U: core::convert::TryFrom<T>
pub type aya_log::LowerMacFormatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::LowerMacFormatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::LowerMacFormatter where T: 'static + core::marker::Sized
pub fn aya_log::LowerMacFormatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::LowerMacFormatter where T: core::marker::Sized
pub fn aya_log::LowerMacFormatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::LowerMacFormatter where T: core::marker::Sized
pub fn aya_log::LowerMacFormatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::LowerMacFormatter
pub fn aya_log::LowerMacFormatter::from(t: T) -> T
pub struct aya_log::UpperHexDebugFormatter
impl<T> aya_log::Formatter<&[T]> for aya_log::UpperHexDebugFormatter where T: core::fmt::UpperHex
pub fn aya_log::UpperHexDebugFormatter::format(v: &[T]) -> alloc::string::String
impl core::marker::Send for aya_log::UpperHexDebugFormatter
impl core::marker::Sync for aya_log::UpperHexDebugFormatter
impl core::marker::Unpin for aya_log::UpperHexDebugFormatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::UpperHexDebugFormatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::UpperHexDebugFormatter
impl<T, U> core::convert::Into<U> for aya_log::UpperHexDebugFormatter where U: core::convert::From<T>
pub fn aya_log::UpperHexDebugFormatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::UpperHexDebugFormatter where U: core::convert::Into<T>
pub type aya_log::UpperHexDebugFormatter::Error = core::convert::Infallible
pub fn aya_log::UpperHexDebugFormatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::UpperHexDebugFormatter where U: core::convert::TryFrom<T>
pub type aya_log::UpperHexDebugFormatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::UpperHexDebugFormatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::UpperHexDebugFormatter where T: 'static + core::marker::Sized
pub fn aya_log::UpperHexDebugFormatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::UpperHexDebugFormatter where T: core::marker::Sized
pub fn aya_log::UpperHexDebugFormatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::UpperHexDebugFormatter where T: core::marker::Sized
pub fn aya_log::UpperHexDebugFormatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::UpperHexDebugFormatter
pub fn aya_log::UpperHexDebugFormatter::from(t: T) -> T
pub struct aya_log::UpperHexFormatter
impl<T> aya_log::Formatter<T> for aya_log::UpperHexFormatter where T: core::fmt::UpperHex
pub fn aya_log::UpperHexFormatter::format(v: T) -> alloc::string::String
impl core::marker::Send for aya_log::UpperHexFormatter
impl core::marker::Sync for aya_log::UpperHexFormatter
impl core::marker::Unpin for aya_log::UpperHexFormatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::UpperHexFormatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::UpperHexFormatter
impl<T, U> core::convert::Into<U> for aya_log::UpperHexFormatter where U: core::convert::From<T>
pub fn aya_log::UpperHexFormatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::UpperHexFormatter where U: core::convert::Into<T>
pub type aya_log::UpperHexFormatter::Error = core::convert::Infallible
pub fn aya_log::UpperHexFormatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::UpperHexFormatter where U: core::convert::TryFrom<T>
pub type aya_log::UpperHexFormatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::UpperHexFormatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::UpperHexFormatter where T: 'static + core::marker::Sized
pub fn aya_log::UpperHexFormatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::UpperHexFormatter where T: core::marker::Sized
pub fn aya_log::UpperHexFormatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::UpperHexFormatter where T: core::marker::Sized
pub fn aya_log::UpperHexFormatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::UpperHexFormatter
pub fn aya_log::UpperHexFormatter::from(t: T) -> T
pub struct aya_log::UpperMacFormatter
impl aya_log::Formatter<[u8; 6]> for aya_log::UpperMacFormatter
pub fn aya_log::UpperMacFormatter::format(v: [u8; 6]) -> alloc::string::String
impl core::marker::Send for aya_log::UpperMacFormatter
impl core::marker::Sync for aya_log::UpperMacFormatter
impl core::marker::Unpin for aya_log::UpperMacFormatter
impl core::panic::unwind_safe::RefUnwindSafe for aya_log::UpperMacFormatter
impl core::panic::unwind_safe::UnwindSafe for aya_log::UpperMacFormatter
impl<T, U> core::convert::Into<U> for aya_log::UpperMacFormatter where U: core::convert::From<T>
pub fn aya_log::UpperMacFormatter::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_log::UpperMacFormatter where U: core::convert::Into<T>
pub type aya_log::UpperMacFormatter::Error = core::convert::Infallible
pub fn aya_log::UpperMacFormatter::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_log::UpperMacFormatter where U: core::convert::TryFrom<T>
pub type aya_log::UpperMacFormatter::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_log::UpperMacFormatter::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_log::UpperMacFormatter where T: 'static + core::marker::Sized
pub fn aya_log::UpperMacFormatter::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_log::UpperMacFormatter where T: core::marker::Sized
pub fn aya_log::UpperMacFormatter::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_log::UpperMacFormatter where T: core::marker::Sized
pub fn aya_log::UpperMacFormatter::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_log::UpperMacFormatter
pub fn aya_log::UpperMacFormatter::from(t: T) -> T
pub trait aya_log::Formatter<T>
pub fn aya_log::Formatter::format(v: T) -> alloc::string::String
impl aya_log::Formatter<[u8; 6]> for aya_log::LowerMacFormatter
pub fn aya_log::LowerMacFormatter::format(v: [u8; 6]) -> alloc::string::String
impl aya_log::Formatter<[u8; 6]> for aya_log::UpperMacFormatter
pub fn aya_log::UpperMacFormatter::format(v: [u8; 6]) -> alloc::string::String
impl<T> aya_log::Formatter<&[T]> for aya_log::LowerHexDebugFormatter where T: core::fmt::LowerHex
pub fn aya_log::LowerHexDebugFormatter::format(v: &[T]) -> alloc::string::String
impl<T> aya_log::Formatter<&[T]> for aya_log::UpperHexDebugFormatter where T: core::fmt::UpperHex
pub fn aya_log::UpperHexDebugFormatter::format(v: &[T]) -> alloc::string::String
impl<T> aya_log::Formatter<T> for aya_log::DefaultFormatter where T: alloc::string::ToString
pub fn aya_log::DefaultFormatter::format(v: T) -> alloc::string::String
impl<T> aya_log::Formatter<T> for aya_log::Ipv4Formatter where T: core::convert::Into<core::net::ip_addr::Ipv4Addr>
pub fn aya_log::Ipv4Formatter::format(v: T) -> alloc::string::String
impl<T> aya_log::Formatter<T> for aya_log::Ipv6Formatter where T: core::convert::Into<core::net::ip_addr::Ipv6Addr>
pub fn aya_log::Ipv6Formatter::format(v: T) -> alloc::string::String
impl<T> aya_log::Formatter<T> for aya_log::LowerHexFormatter where T: core::fmt::LowerHex
pub fn aya_log::LowerHexFormatter::format(v: T) -> alloc::string::String
impl<T> aya_log::Formatter<T> for aya_log::UpperHexFormatter where T: core::fmt::UpperHex
pub fn aya_log::UpperHexFormatter::format(v: T) -> alloc::string::String

File diff suppressed because it is too large Load Diff

@ -0,0 +1,101 @@
pub mod aya_tool
pub mod aya_tool::bindgen
pub fn aya_tool::bindgen::bpf_builder() -> bindgen::Builder
pub fn aya_tool::bindgen::user_builder() -> bindgen::Builder
pub mod aya_tool::generate
pub enum aya_tool::generate::Error
pub aya_tool::generate::Error::Bindgen(std::io::error::Error)
pub aya_tool::generate::Error::BindgenExit
pub aya_tool::generate::Error::BindgenExit::code: i32
pub aya_tool::generate::Error::BindgenExit::stderr: alloc::string::String
pub aya_tool::generate::Error::BpfTool(std::io::error::Error)
pub aya_tool::generate::Error::BpfToolExit
pub aya_tool::generate::Error::BpfToolExit::code: i32
pub aya_tool::generate::Error::BpfToolExit::stderr: alloc::string::String
pub aya_tool::generate::Error::ReadHeaderFile(std::io::error::Error)
pub aya_tool::generate::Error::Rustfmt(std::io::error::Error)
impl core::error::Error for aya_tool::generate::Error
pub fn aya_tool::generate::Error::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)>
impl core::fmt::Display for aya_tool::generate::Error
pub fn aya_tool::generate::Error::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::fmt::Debug for aya_tool::generate::Error
pub fn aya_tool::generate::Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result
impl core::marker::Send for aya_tool::generate::Error
impl core::marker::Sync for aya_tool::generate::Error
impl core::marker::Unpin for aya_tool::generate::Error
impl !core::panic::unwind_safe::RefUnwindSafe for aya_tool::generate::Error
impl !core::panic::unwind_safe::UnwindSafe for aya_tool::generate::Error
impl<E> core::any::Provider for aya_tool::generate::Error where E: core::error::Error + core::marker::Sized
pub fn aya_tool::generate::Error::provide<'a>(&'a self, demand: &mut core::any::Demand<'a>)
impl<T, U> core::convert::Into<U> for aya_tool::generate::Error where U: core::convert::From<T>
pub fn aya_tool::generate::Error::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_tool::generate::Error where U: core::convert::Into<T>
pub type aya_tool::generate::Error::Error = core::convert::Infallible
pub fn aya_tool::generate::Error::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_tool::generate::Error where U: core::convert::TryFrom<T>
pub type aya_tool::generate::Error::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_tool::generate::Error::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> alloc::string::ToString for aya_tool::generate::Error where T: core::fmt::Display + core::marker::Sized
pub fn aya_tool::generate::Error::to_string(&self) -> alloc::string::String
impl<T> core::any::Any for aya_tool::generate::Error where T: 'static + core::marker::Sized
pub fn aya_tool::generate::Error::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_tool::generate::Error where T: core::marker::Sized
pub fn aya_tool::generate::Error::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_tool::generate::Error where T: core::marker::Sized
pub fn aya_tool::generate::Error::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_tool::generate::Error
pub fn aya_tool::generate::Error::from(t: T) -> T
pub enum aya_tool::generate::InputFile
pub aya_tool::generate::InputFile::Btf(std::path::PathBuf)
pub aya_tool::generate::InputFile::Header(std::path::PathBuf)
impl core::marker::Send for aya_tool::generate::InputFile
impl core::marker::Sync for aya_tool::generate::InputFile
impl core::marker::Unpin for aya_tool::generate::InputFile
impl core::panic::unwind_safe::RefUnwindSafe for aya_tool::generate::InputFile
impl core::panic::unwind_safe::UnwindSafe for aya_tool::generate::InputFile
impl<T, U> core::convert::Into<U> for aya_tool::generate::InputFile where U: core::convert::From<T>
pub fn aya_tool::generate::InputFile::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_tool::generate::InputFile where U: core::convert::Into<T>
pub type aya_tool::generate::InputFile::Error = core::convert::Infallible
pub fn aya_tool::generate::InputFile::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_tool::generate::InputFile where U: core::convert::TryFrom<T>
pub type aya_tool::generate::InputFile::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_tool::generate::InputFile::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_tool::generate::InputFile where T: 'static + core::marker::Sized
pub fn aya_tool::generate::InputFile::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_tool::generate::InputFile where T: core::marker::Sized
pub fn aya_tool::generate::InputFile::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_tool::generate::InputFile where T: core::marker::Sized
pub fn aya_tool::generate::InputFile::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_tool::generate::InputFile
pub fn aya_tool::generate::InputFile::from(t: T) -> T
pub fn aya_tool::generate::generate<T: core::convert::AsRef<str>>(input_file: aya_tool::generate::InputFile, types: &[T], additional_flags: &[T]) -> core::result::Result<alloc::string::String, aya_tool::generate::Error>
pub mod aya_tool::rustfmt
pub fn aya_tool::rustfmt::format(code: &str) -> core::result::Result<alloc::string::String, std::io::error::Error>
pub enum aya_tool::InputFile
pub aya_tool::InputFile::Btf(std::path::PathBuf)
pub aya_tool::InputFile::Header(std::path::PathBuf)
impl core::marker::Send for aya_tool::generate::InputFile
impl core::marker::Sync for aya_tool::generate::InputFile
impl core::marker::Unpin for aya_tool::generate::InputFile
impl core::panic::unwind_safe::RefUnwindSafe for aya_tool::generate::InputFile
impl core::panic::unwind_safe::UnwindSafe for aya_tool::generate::InputFile
impl<T, U> core::convert::Into<U> for aya_tool::generate::InputFile where U: core::convert::From<T>
pub fn aya_tool::generate::InputFile::into(self) -> U
impl<T, U> core::convert::TryFrom<U> for aya_tool::generate::InputFile where U: core::convert::Into<T>
pub type aya_tool::generate::InputFile::Error = core::convert::Infallible
pub fn aya_tool::generate::InputFile::try_from(value: U) -> core::result::Result<T, <T as core::convert::TryFrom<U>>::Error>
impl<T, U> core::convert::TryInto<U> for aya_tool::generate::InputFile where U: core::convert::TryFrom<T>
pub type aya_tool::generate::InputFile::Error = <U as core::convert::TryFrom<T>>::Error
pub fn aya_tool::generate::InputFile::try_into(self) -> core::result::Result<U, <U as core::convert::TryFrom<T>>::Error>
impl<T> core::any::Any for aya_tool::generate::InputFile where T: 'static + core::marker::Sized
pub fn aya_tool::generate::InputFile::type_id(&self) -> core::any::TypeId
impl<T> core::borrow::Borrow<T> for aya_tool::generate::InputFile where T: core::marker::Sized
pub fn aya_tool::generate::InputFile::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for aya_tool::generate::InputFile where T: core::marker::Sized
pub fn aya_tool::generate::InputFile::borrow_mut(&mut self) -> &mut T
impl<T> core::convert::From<T> for aya_tool::generate::InputFile
pub fn aya_tool::generate::InputFile::from(t: T) -> T
pub fn aya_tool::generate<T: core::convert::AsRef<str>>(input_file: aya_tool::generate::InputFile, types: &[T], additional_flags: &[T]) -> core::result::Result<alloc::string::String, aya_tool::generate::Error>
pub fn aya_tool::write_to_file<T: core::convert::AsRef<std::path::Path>>(path: T, code: &str) -> core::result::Result<(), std::io::error::Error>
pub fn aya_tool::write_to_file_fmt<T: core::convert::AsRef<std::path::Path>>(path: T, code: &str) -> core::result::Result<(), std::io::error::Error>

File diff suppressed because it is too large Load Diff

@ -1,5 +1,6 @@
mod codegen; mod codegen;
mod docs; mod docs;
mod public_api;
mod run; mod run;
use anyhow::{Context as _, Result}; use anyhow::{Context as _, Result};
@ -20,6 +21,7 @@ enum Subcommand {
Docs, Docs,
BuildIntegrationTest(run::BuildOptions), BuildIntegrationTest(run::BuildOptions),
IntegrationTest(run::Options), IntegrationTest(run::Options),
PublicApi(public_api::Options),
} }
fn main() -> Result<()> { fn main() -> Result<()> {
@ -55,5 +57,6 @@ fn main() -> Result<()> {
Ok(()) Ok(())
} }
Subcommand::IntegrationTest(opts) => run::run(opts), Subcommand::IntegrationTest(opts) => run::run(opts),
Subcommand::PublicApi(opts) => public_api::public_api(opts, metadata),
} }
} }

@ -0,0 +1,129 @@
use std::{
fmt::Write as _,
fs::{read_to_string, write},
path::Path,
};
use anyhow::{bail, Context as _};
use cargo_metadata::{Metadata, Package};
use clap::Parser;
use dialoguer::{theme::ColorfulTheme, Confirm};
use diff::{lines, Result as Diff};
use thiserror::Error;
#[derive(Debug, Parser)]
pub struct Options {
/// Bless new API changes.
#[clap(long)]
pub bless: bool,
}
#[derive(Error, Debug)]
enum PublicApiError {
#[error("error checking public api for {package}\n{source}\n")]
Error {
package: String,
source: anyhow::Error,
},
#[error("public api for {package} changed:\n{diff}\n")]
Changed { package: String, diff: String },
}
pub fn public_api(options: Options, metadata: Metadata) -> anyhow::Result<()> {
let toolchain = "nightly";
let Options { bless } = options;
if !rustup_toolchain::is_installed(toolchain)? {
if Confirm::with_theme(&ColorfulTheme::default())
.with_prompt("No nightly toolchain detected. Would you like to install one?")
.interact()?
{
rustup_toolchain::install(toolchain)?;
} else {
bail!("nightly toolchain not installed")
}
}
let Metadata {
workspace_root,
packages,
..
} = &metadata;
let mut buf = String::new();
packages.iter().for_each(|Package { name, publish, .. }| {
if matches!(publish, Some(publish) if publish.is_empty()) {
return;
}
if let Err(e) = check_package_api(name, toolchain, bless, workspace_root.as_std_path()) {
write!(&mut buf, "{}", e).unwrap();
}
});
if !buf.is_empty() {
bail!("public api may have changed in one or more packages.\nplease bless by re-running this command with --bless\nErrors:\n{buf}");
}
Ok(())
}
fn check_package_api(
package: &str,
toolchain: &str,
bless: bool,
workspace_root: &Path,
) -> Result<(), PublicApiError> {
let path = workspace_root
.join("xtask")
.join("public-api")
.join(package)
.with_extension("txt");
let rustdoc_json = rustdoc_json::Builder::default()
.toolchain(toolchain)
.package(package)
.all_features(true)
.build()
.map_err(|source| PublicApiError::Error {
package: package.to_string(),
source: source.into(),
})?;
let public_api = public_api::Builder::from_rustdoc_json(rustdoc_json)
.build()
.map_err(|source| PublicApiError::Error {
package: package.to_string(),
source: source.into(),
})?;
if bless {
write(&path, public_api.to_string().as_bytes()).map_err(|source| {
PublicApiError::Error {
package: package.to_string(),
source: source.into(),
}
})?;
}
let current_api = read_to_string(&path)
.with_context(|| format!("error reading {}", &path.display()))
.map_err(|source| PublicApiError::Error {
package: package.to_string(),
source,
})?;
let mut buf = String::new();
lines(&current_api, &public_api.to_string())
.into_iter()
.for_each(|diff| match diff {
Diff::Both(..) => (),
Diff::Right(line) => writeln!(&mut buf, "-{}", line).unwrap(),
Diff::Left(line) => writeln!(&mut buf, "+{}", line).unwrap(),
});
if !buf.is_empty() {
return Err(PublicApiError::Changed {
package: package.to_string(),
diff: buf,
});
};
Ok(())
}
Loading…
Cancel
Save