Browse Source

doc: generate docs in macro

Remove a bunch of repetition and missing links.
Tamir Duberstein 1 week ago
parent
commit
0d1193720b

+ 0 - 2
aya/src/programs/cgroup_device.rs

@@ -162,9 +162,7 @@ impl Link for CgroupDeviceLinkInner {
 id_as_key!(CgroupDeviceLinkInner, CgroupDeviceLinkIdInner);
 id_as_key!(CgroupDeviceLinkInner, CgroupDeviceLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [CgroupDevice] programs.
     CgroupDeviceLink,
     CgroupDeviceLink,
-    /// The type returned by [CgroupDevice::attach]. Can be passed to [CgroupDevice::detach].
     CgroupDeviceLinkId,
     CgroupDeviceLinkId,
     CgroupDeviceLinkInner,
     CgroupDeviceLinkInner,
     CgroupDeviceLinkIdInner,
     CgroupDeviceLinkIdInner,

+ 0 - 2
aya/src/programs/cgroup_skb.rs

@@ -177,9 +177,7 @@ impl Link for CgroupSkbLinkInner {
 id_as_key!(CgroupSkbLinkInner, CgroupSkbLinkIdInner);
 id_as_key!(CgroupSkbLinkInner, CgroupSkbLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [CgroupSkb] programs.
     CgroupSkbLink,
     CgroupSkbLink,
-    /// The type returned by [CgroupSkb::attach]. Can be passed to [CgroupSkb::detach].
     CgroupSkbLinkId,
     CgroupSkbLinkId,
     CgroupSkbLinkInner,
     CgroupSkbLinkInner,
     CgroupSkbLinkIdInner,
     CgroupSkbLinkIdInner,

+ 0 - 2
aya/src/programs/cgroup_sock.rs

@@ -153,9 +153,7 @@ impl Link for CgroupSockLinkInner {
 id_as_key!(CgroupSockLinkInner, CgroupSockLinkIdInner);
 id_as_key!(CgroupSockLinkInner, CgroupSockLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [CgroupSock] programs.
     CgroupSockLink,
     CgroupSockLink,
-    /// The type returned by [CgroupSock::attach]. Can be passed to [CgroupSock::detach].
     CgroupSockLinkId,
     CgroupSockLinkId,
     CgroupSockLinkInner,
     CgroupSockLinkInner,
     CgroupSockLinkIdInner,
     CgroupSockLinkIdInner,

+ 0 - 2
aya/src/programs/cgroup_sock_addr.rs

@@ -154,9 +154,7 @@ impl Link for CgroupSockAddrLinkInner {
 id_as_key!(CgroupSockAddrLinkInner, CgroupSockAddrLinkIdInner);
 id_as_key!(CgroupSockAddrLinkInner, CgroupSockAddrLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [CgroupSockAddr] programs.
     CgroupSockAddrLink,
     CgroupSockAddrLink,
-    /// The type returned by [CgroupSockAddr::attach]. Can be passed to [CgroupSockAddr::detach].
     CgroupSockAddrLinkId,
     CgroupSockAddrLinkId,
     CgroupSockAddrLinkInner,
     CgroupSockAddrLinkInner,
     CgroupSockAddrLinkIdInner,
     CgroupSockAddrLinkIdInner,

+ 0 - 2
aya/src/programs/cgroup_sockopt.rs

@@ -153,9 +153,7 @@ impl Link for CgroupSockoptLinkInner {
 id_as_key!(CgroupSockoptLinkInner, CgroupSockoptLinkIdInner);
 id_as_key!(CgroupSockoptLinkInner, CgroupSockoptLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [CgroupSockopt] programs.
     CgroupSockoptLink,
     CgroupSockoptLink,
-    /// The type returned by [CgroupSockopt::attach]. Can be passed to [CgroupSockopt::detach].
     CgroupSockoptLinkId,
     CgroupSockoptLinkId,
     CgroupSockoptLinkInner,
     CgroupSockoptLinkInner,
     CgroupSockoptLinkIdInner,
     CgroupSockoptLinkIdInner,

+ 0 - 2
aya/src/programs/cgroup_sysctl.rs

@@ -137,9 +137,7 @@ impl Link for CgroupSysctlLinkInner {
 id_as_key!(CgroupSysctlLinkInner, CgroupSysctlLinkIdInner);
 id_as_key!(CgroupSysctlLinkInner, CgroupSysctlLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [CgroupSysctl] programs.
     CgroupSysctlLink,
     CgroupSysctlLink,
-    /// The type returned by [CgroupSysctl::attach]. Can be passed to [CgroupSysctl::detach].
     CgroupSysctlLinkId,
     CgroupSysctlLinkId,
     CgroupSysctlLinkInner,
     CgroupSysctlLinkInner,
     CgroupSysctlLinkIdInner,
     CgroupSysctlLinkIdInner,

+ 1 - 9
aya/src/programs/extension.rs

@@ -197,12 +197,4 @@ fn get_btf_info(
     Ok((btf_fd, btf_id))
     Ok((btf_fd, btf_id))
 }
 }
 
 
-define_link_wrapper!(
-    /// The link used by [Extension] programs.
-    ExtensionLink,
-    /// The type returned by [Extension::attach]. Can be passed to [Extension::detach].
-    ExtensionLinkId,
-    FdLink,
-    FdLinkId,
-    Extension,
-);
+define_link_wrapper!(ExtensionLink, ExtensionLinkId, FdLink, FdLinkId, Extension);

+ 1 - 9
aya/src/programs/fentry.rs

@@ -73,12 +73,4 @@ impl FEntry {
     }
     }
 }
 }
 
 
-define_link_wrapper!(
-    /// The link used by [FEntry] programs.
-    FEntryLink,
-    /// The type returned by [FEntry::attach]. Can be passed to [FEntry::detach].
-    FEntryLinkId,
-    FdLink,
-    FdLinkId,
-    FEntry,
-);
+define_link_wrapper!(FEntryLink, FEntryLinkId, FdLink, FdLinkId, FEntry);

+ 1 - 9
aya/src/programs/fexit.rs

@@ -73,12 +73,4 @@ impl FExit {
     }
     }
 }
 }
 
 
-define_link_wrapper!(
-    /// The link used by [FExit] programs.
-    FExitLink,
-    /// The type returned by [FExit::attach]. Can be passed to [FExit::detach].
-    FExitLinkId,
-    FdLink,
-    FdLinkId,
-    FExit,
-);
+define_link_wrapper!(FExitLink, FExitLinkId, FdLink, FdLinkId, FExit);

+ 0 - 2
aya/src/programs/flow_dissector.rs

@@ -149,9 +149,7 @@ impl Link for FlowDissectorLinkInner {
 id_as_key!(FlowDissectorLinkInner, FlowDissectorLinkIdInner);
 id_as_key!(FlowDissectorLinkInner, FlowDissectorLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [FlowDissector] programs.
     FlowDissectorLink,
     FlowDissectorLink,
-    /// The type returned by [FlowDissector::attach]. Can be passed to [FlowDissector::detach].
     FlowDissectorLinkId,
     FlowDissectorLinkId,
     FlowDissectorLinkInner,
     FlowDissectorLinkInner,
     FlowDissectorLinkIdInner,
     FlowDissectorLinkIdInner,

+ 1 - 9
aya/src/programs/iter.rs

@@ -118,15 +118,7 @@ impl TryFrom<FdLink> for IterLink {
 
 
 impl_try_into_fdlink!(IterLink, PerfLinkInner);
 impl_try_into_fdlink!(IterLink, PerfLinkInner);
 
 
-define_link_wrapper!(
-    /// The link used by [`Iter`] programs.
-    IterLink,
-    /// The type returned by [`Iter::attach`]. Can be passed to [`Iter::detach`].
-    IterLinkId,
-    PerfLinkInner,
-    PerfLinkIdInner,
-    Iter,
-);
+define_link_wrapper!(IterLink, IterLinkId, PerfLinkInner, PerfLinkIdInner, Iter);
 
 
 impl IterLink {
 impl IterLink {
     /// Converts [`IterLink`] into a [`File`] that can be used to retrieve the
     /// Converts [`IterLink`] into a [`File`] that can be used to retrieve the

+ 0 - 2
aya/src/programs/kprobe.rs

@@ -104,9 +104,7 @@ impl KProbe {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [KProbe] programs.
     KProbeLink,
     KProbeLink,
-    /// The type returned by [KProbe::attach]. Can be passed to [KProbe::detach].
     KProbeLinkId,
     KProbeLinkId,
     PerfLinkInner,
     PerfLinkInner,
     PerfLinkIdInner,
     PerfLinkIdInner,

+ 9 - 3
aya/src/programs/links.rs

@@ -473,12 +473,18 @@ macro_rules! id_as_key {
 pub(crate) use id_as_key;
 pub(crate) use id_as_key;
 
 
 macro_rules! define_link_wrapper {
 macro_rules! define_link_wrapper {
-    (#[$doc1:meta] $wrapper:ident, #[$doc2:meta] $wrapper_id:ident, $base:ident, $base_id:ident, $program:ident,) => {
-        #[$doc2]
+    ($wrapper:ident, $wrapper_id:ident, $base:ident, $base_id:ident, $program:ident $(,)?) => {
+        /// The type returned by
+        #[doc = concat!("[`", stringify!($program), "::attach`]")]
+        /// . Can be passed to
+        #[doc = concat!("[`", stringify!($program), "::detach`]")]
+        /// .
         #[derive(Debug, Hash, Eq, PartialEq)]
         #[derive(Debug, Hash, Eq, PartialEq)]
         pub struct $wrapper_id($base_id);
         pub struct $wrapper_id($base_id);
 
 
-        #[$doc1]
+        /// The link used by
+        #[doc = concat!("[`", stringify!($program), "`]")]
+        /// programs.
         #[derive(Debug)]
         #[derive(Debug)]
         pub struct $wrapper(Option<$base>);
         pub struct $wrapper(Option<$base>);
 
 

+ 1 - 1
aya/src/programs/lirc_mode2.rs

@@ -121,7 +121,7 @@ impl LircMode2 {
     }
     }
 }
 }
 
 
-/// The type returned by [LircMode2::attach]. Can be passed to [LircMode2::detach].
+/// The type returned by [`LircMode2::attach`]. Can be passed to [`LircMode2::detach`].
 #[derive(Debug, Hash, Eq, PartialEq)]
 #[derive(Debug, Hash, Eq, PartialEq)]
 pub struct LircLinkId(RawFd, RawFd);
 pub struct LircLinkId(RawFd, RawFd);
 
 

+ 1 - 9
aya/src/programs/lsm.rs

@@ -79,12 +79,4 @@ impl Lsm {
     }
     }
 }
 }
 
 
-define_link_wrapper!(
-    /// The link used by [Lsm] programs.
-    LsmLink,
-    /// The type returned by [Lsm::attach]. Can be passed to [Lsm::detach].
-    LsmLinkId,
-    FdLink,
-    FdLinkId,
-    Lsm,
-);
+define_link_wrapper!(LsmLink, LsmLinkId, FdLink, FdLinkId, Lsm);

+ 0 - 2
aya/src/programs/perf_event.rs

@@ -203,9 +203,7 @@ impl TryFrom<FdLink> for PerfEventLink {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [PerfEvent] programs.
     PerfEventLink,
     PerfEventLink,
-    /// The type returned by [PerfEvent::attach]. Can be passed to [PerfEvent::detach].
     PerfEventLinkId,
     PerfEventLinkId,
     PerfLinkInner,
     PerfLinkInner,
     PerfLinkIdInner,
     PerfLinkIdInner,

+ 0 - 2
aya/src/programs/raw_trace_point.rs

@@ -57,9 +57,7 @@ impl RawTracePoint {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [RawTracePoint] programs.
     RawTracePointLink,
     RawTracePointLink,
-    /// The type returned by [RawTracePoint::attach]. Can be passed to [RawTracePoint::detach].
     RawTracePointLinkId,
     RawTracePointLinkId,
     FdLink,
     FdLink,
     FdLinkId,
     FdLinkId,

+ 1 - 9
aya/src/programs/sk_lookup.rs

@@ -82,12 +82,4 @@ impl SkLookup {
     }
     }
 }
 }
 
 
-define_link_wrapper!(
-    /// The link used by [SkLookup] programs.
-    SkLookupLink,
-    /// The type returned by [SkLookup::attach]. Can be passed to [SkLookup::detach].
-    SkLookupLinkId,
-    FdLink,
-    FdLinkId,
-    SkLookup,
-);
+define_link_wrapper!(SkLookupLink, SkLookupLinkId, FdLink, FdLinkId, SkLookup);

+ 0 - 2
aya/src/programs/sk_msg.rs

@@ -98,9 +98,7 @@ impl SkMsg {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [SkMsg] programs.
     SkMsgLink,
     SkMsgLink,
-    /// The type returned by [SkMsg::attach]. Can be passed to [SkMsg::detach].
     SkMsgLinkId,
     SkMsgLinkId,
     ProgAttachLink,
     ProgAttachLink,
     ProgAttachLinkId,
     ProgAttachLinkId,

+ 0 - 2
aya/src/programs/sk_skb.rs

@@ -113,9 +113,7 @@ impl SkSkb {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [SkSkb] programs.
     SkSkbLink,
     SkSkbLink,
-    /// The type returned by [SkSkb::attach]. Can be passed to [SkSkb::detach].
     SkSkbLinkId,
     SkSkbLinkId,
     ProgAttachLink,
     ProgAttachLink,
     ProgAttachLinkId,
     ProgAttachLinkId,

+ 0 - 2
aya/src/programs/sock_ops.rs

@@ -132,9 +132,7 @@ impl Link for SockOpsLinkInner {
 id_as_key!(SockOpsLinkInner, SockOpsLinkIdInner);
 id_as_key!(SockOpsLinkInner, SockOpsLinkIdInner);
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [SockOps] programs.
     SockOpsLink,
     SockOpsLink,
-    /// The type returned by [SockOps::attach]. Can be passed to [SockOps::detach].
     SockOpsLinkId,
     SockOpsLinkId,
     SockOpsLinkInner,
     SockOpsLinkInner,
     SockOpsLinkIdInner,
     SockOpsLinkIdInner,

+ 1 - 1
aya/src/programs/socket_filter.rs

@@ -120,7 +120,7 @@ impl SocketFilter {
     }
     }
 }
 }
 
 
-/// The type returned by [SocketFilter::attach]. Can be passed to [SocketFilter::detach].
+/// The type returned by [`SocketFilter::attach`]. Can be passed to [`SocketFilter::detach`].
 #[derive(Debug, Hash, Eq, PartialEq)]
 #[derive(Debug, Hash, Eq, PartialEq)]
 pub struct SocketFilterLinkId(RawFd, RawFd);
 pub struct SocketFilterLinkId(RawFd, RawFd);
 
 

+ 0 - 2
aya/src/programs/tc.rs

@@ -463,9 +463,7 @@ impl TryFrom<FdLink> for SchedClassifierLink {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [SchedClassifier] programs.
     SchedClassifierLink,
     SchedClassifierLink,
-    /// The type returned by [SchedClassifier::attach]. Can be passed to [SchedClassifier::detach].
     SchedClassifierLinkId,
     SchedClassifierLinkId,
     TcLinkInner,
     TcLinkInner,
     TcLinkIdInner,
     TcLinkIdInner,

+ 0 - 2
aya/src/programs/tp_btf.rs

@@ -78,9 +78,7 @@ impl BtfTracePoint {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [BtfTracePoint] programs.
     BtfTracePointLink,
     BtfTracePointLink,
-    /// The type returned by [BtfTracePoint::attach]. Can be passed to [BtfTracePoint::detach].
     BtfTracePointLinkId,
     BtfTracePointLinkId,
     FdLink,
     FdLink,
     FdLinkId,
     FdLinkId,

+ 0 - 2
aya/src/programs/trace_point.rs

@@ -90,9 +90,7 @@ impl TracePoint {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [TracePoint] programs.
     TracePointLink,
     TracePointLink,
-    /// The type returned by [TracePoint::attach]. Can be passed to [TracePoint::detach].
     TracePointLinkId,
     TracePointLinkId,
     PerfLinkInner,
     PerfLinkInner,
     PerfLinkIdInner,
     PerfLinkIdInner,

+ 0 - 2
aya/src/programs/uprobe.rs

@@ -211,9 +211,7 @@ fn test_resolve_attach_path() {
 }
 }
 
 
 define_link_wrapper!(
 define_link_wrapper!(
-    /// The link used by [UProbe] programs.
     UProbeLink,
     UProbeLink,
-    /// The type returned by [UProbe::attach]. Can be passed to [UProbe::detach].
     UProbeLinkId,
     UProbeLinkId,
     PerfLinkInner,
     PerfLinkInner,
     PerfLinkIdInner,
     PerfLinkIdInner,

+ 1 - 9
aya/src/programs/xdp.rs

@@ -319,12 +319,4 @@ impl TryFrom<FdLink> for XdpLink {
     }
     }
 }
 }
 
 
-define_link_wrapper!(
-    /// The link used by [Xdp] programs.
-    XdpLink,
-    /// The type returned by [Xdp::attach]. Can be passed to [Xdp::detach].
-    XdpLinkId,
-    XdpLinkInner,
-    XdpLinkIdInner,
-    Xdp,
-);
+define_link_wrapper!(XdpLink, XdpLinkId, XdpLinkInner, XdpLinkIdInner, Xdp);