Pārlūkot izejas kodu

Fix doc links, update rustdoc args

Fix some broken rust doc links.

Make sure rustdoc build fail on warnings
so we catch these broken links in CI.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 2 gadi atpakaļ
vecāks
revīzija
82edd681c3

+ 1 - 1
aya/Cargo.toml

@@ -34,4 +34,4 @@ async_std = ["async-io", "async"]
 
 [package.metadata.docs.rs]
 all-features = true
-rustdoc-args = ["--cfg", "docsrs"]
+rustdoc-args = ["--cfg", "docsrs","-D", "warnings"]

+ 4 - 5
aya/src/bpf.rs

@@ -760,11 +760,10 @@ impl Bpf {
 
     /// Takes ownership of a map with the given name.
     ///
-    /// This API is intended for cases where the map must be moved into spawned
-    /// task. For example, when using an [`AsyncPerfEventArray`]. For map interactions
-    /// without taking ownership, see `map` or `map_mut`. An owned map will be
-    /// closed on `Drop`, therefore the the caller is now responsible for managing
-    /// its lifetime.
+    /// Use this when borrowing with [`map`](crate::Bpf::map) or [`map_mut`](crate::Bpf::map_mut)
+    /// is not possible (eg when using the map from an async task). The returned
+    /// map will be closed on `Drop`, therefore the caller is responsible for
+    /// managing its lifetime.
     ///
     /// The returned type is mostly opaque. In order to do anything useful with it you need to
     /// convert it to a [typed map](crate::maps).

+ 9 - 9
aya/src/maps/mod.rs

@@ -5,16 +5,16 @@
 //! [`Bpf::load_file`](crate::Bpf::load_file) or
 //! [`Bpf::load`](crate::Bpf::load), all the maps defined in the eBPF code get
 //! initialized and can then be accessed using [`Bpf::map`](crate::Bpf::map),
-//! [`Bpf::map_mut`](crate::Bpf::map_mut), [`Bpf::take_map`](crate::Bpf::map)
-//! or [`Bpf::map_mut`](crate::Bpf::take_map).
+//! [`Bpf::map_mut`](crate::Bpf::map_mut), or [`Bpf::take_map`](crate::Bpf::take_map).
 //!
 //! # Typed maps
 //!
 //! The eBPF API includes many map types each supporting different operations.
 //! [`Bpf::map`](crate::Bpf::map), [`Bpf::map_mut`](crate::Bpf::map_mut), and
-//! [`Bpf::map_mut`](crate::Bpf::take_map) always return the
-//! opaque [`&Map`], [`&mut Map`], and [`Map`] types respectively. Those three types can be converted to
-//! *typed maps* using the [`TryFrom`](std::convert::TryFrom) or [`TryInto`](std::convert::TryInto)
+//! [`Bpf::take_map`](crate::Bpf::take_map) always return the
+//! opaque [`&Map`](crate::maps::Map), [`&mut Map`](crate::maps::Map), and [`Map`](crate::maps::Map)
+//! types respectively. Those three types can be converted to *typed maps* using
+//! the [`TryFrom`](std::convert::TryFrom) or [`TryInto`](std::convert::TryInto)
 //! trait. For example:
 //!
 //! ```no_run
@@ -233,7 +233,7 @@ fn maybe_warn_rlimit() {
 /// eBPF map types.
 #[derive(Debug)]
 pub enum Map {
-    /// A ['Array`] map
+    /// A [`Array`] map
     Array(MapData),
     /// A [`PerCpuArray`] map
     PerCpuArray(MapData),
@@ -241,7 +241,7 @@ pub enum Map {
     ProgramArray(MapData),
     /// A [`HashMap`] map
     HashMap(MapData),
-    /// A ['PerCpuHashMap'] map
+    /// A [`PerCpuHashMap`] map
     PerCpuHashMap(MapData),
     /// A [`PerfEventArray`] map
     PerfEventArray(MapData),
@@ -255,7 +255,7 @@ pub enum Map {
     LpmTrie(MapData),
     /// A [`Stack`] map
     Stack(MapData),
-    /// A [`StackTrace`] map
+    /// A [`StackTraceMap`] map
     StackTraceMap(MapData),
     /// A [`Queue`] map
     Queue(MapData),
@@ -556,7 +556,7 @@ impl MapData {
 
     /// Loads a map from a [`RawFd`].
     ///
-    /// If loading from a BPF Filesystem (bpffs) you should use [`Map::from_pin`].
+    /// If loading from a BPF Filesystem (bpffs) you should use [`Map::from_pin`](crate::maps::MapData::from_pin).
     /// This API is intended for cases where you have received a valid BPF FD from some other means.
     /// For example, you received an FD over Unix Domain Socket.
     pub fn from_fd(fd: RawFd) -> Result<MapData, MapError> {

+ 1 - 1
aya/src/maps/perf/mod.rs

@@ -1,6 +1,6 @@
 //! Ring buffer types used to receive events from eBPF programs using the linux `perf` API.
 //!
-//! See the [`PerfEventArray`] and [`AsyncPerfEventArray`].
+//! See the [`PerfEventArray`](crate::maps::PerfEventArray) and [`AsyncPerfEventArray`](crate::maps::perf::AsyncPerfEventArray).
 #[cfg(any(feature = "async"))]
 #[cfg_attr(docsrs, doc(cfg(feature = "async")))]
 mod async_perf_event_array;

+ 1 - 1
aya/src/maps/sock/mod.rs

@@ -7,7 +7,7 @@ pub use sock_map::SockMap;
 
 use std::os::unix::io::{AsRawFd, RawFd};
 
-/// A [`SocketMap`] file descriptor.
+/// A socket map file descriptor.
 #[derive(Copy, Clone)]
 pub struct SockMapFd(RawFd);
 

+ 1 - 1
aya/src/maps/sock/sock_hash.rs

@@ -107,7 +107,7 @@ impl<T: AsRef<MapData>, K: Pod> SockHash<T, K> {
     /// Returns the map's file descriptor.
     ///
     /// The returned file descriptor can be used to attach programs that work with
-    /// socket maps, like [`SkMsg`] and [`SkSkb`].
+    /// socket maps, like [`SkMsg`](crate::programs::SkMsg) and [`SkSkb`](crate::programs::SkSkb).
     pub fn fd(&self) -> Result<SockMapFd, MapError> {
         Ok(SockMapFd(self.inner.as_ref().fd_or_err()?))
     }

+ 1 - 1
aya/src/maps/sock/sock_map.rs

@@ -63,7 +63,7 @@ impl<T: AsRef<MapData>> SockMap<T> {
     /// Returns the map's file descriptor.
     ///
     /// The returned file descriptor can be used to attach programs that work with
-    /// socket maps, like [`SkMsg`] and [`SkSkb`].
+    /// socket maps, like [`SkMsg`](crate::programs::SkMsg) and [`SkSkb`](crate::programs::SkSkb).
     pub fn fd(&self) -> Result<SockMapFd, MapError> {
         Ok(SockMapFd(self.inner.as_ref().fd_or_err()?))
     }

+ 1 - 1
xtask/src/docs/mod.rs

@@ -68,7 +68,7 @@ fn build_docs(working_dir: &PathBuf, abs_header_path: &Path) -> Result<(), anyho
         .env(
             "RUSTDOCFLAGS",
             format!(
-                "--cfg docsrs --html-in-header {}",
+                "--cfg docsrs --html-in-header {} -D warnings",
                 abs_header_path.to_str().unwrap()
             ),
         )