#![allow(clippy::doc_lazy_continuation)]
#![cfg_attr(not(doctest), doc = include_str!("../README.md"))]
#![cfg_attr(docsrs, feature(doc_cfg))]
mod primitives;
pub mod builtin;
pub mod consts;
pub mod traits;
pub mod utils;
#[cfg(feature = "binder")]
#[cfg_attr(docsrs, doc(cfg(feature = "binder")))]
pub mod binder;
#[cfg(feature = "conntrack")]
#[cfg_attr(docsrs, doc(cfg(feature = "conntrack")))]
pub mod conntrack;
#[cfg(feature = "dev-energymodel")]
#[cfg_attr(docsrs, doc(cfg(feature = "dev-energymodel")))]
#[path = "dev-energymodel/mod.rs"]
pub mod dev_energymodel;
#[cfg(feature = "devlink")]
#[cfg_attr(docsrs, doc(cfg(feature = "devlink")))]
pub mod devlink;
#[cfg(feature = "dpll")]
#[cfg_attr(docsrs, doc(cfg(feature = "dpll")))]
pub mod dpll;
#[cfg(feature = "drm-ras")]
#[cfg_attr(docsrs, doc(cfg(feature = "drm-ras")))]
#[path = "drm-ras/mod.rs"]
pub mod drm_ras;
#[cfg(feature = "ethtool")]
#[cfg_attr(docsrs, doc(cfg(feature = "ethtool")))]
pub mod ethtool;
#[cfg(feature = "fou")]
#[cfg_attr(docsrs, doc(cfg(feature = "fou")))]
pub mod fou;
#[cfg(feature = "handshake")]
#[cfg_attr(docsrs, doc(cfg(feature = "handshake")))]
pub mod handshake;
#[cfg(feature = "inet-diag")]
#[cfg_attr(docsrs, doc(cfg(feature = "inet-diag")))]
#[path = "inet-diag/mod.rs"]
pub mod inet_diag;
#[cfg(feature = "lockd")]
#[cfg_attr(docsrs, doc(cfg(feature = "lockd")))]
pub mod lockd;
#[cfg(feature = "mptcp_pm")]
#[cfg_attr(docsrs, doc(cfg(feature = "mptcp_pm")))]
pub mod mptcp_pm;
#[cfg(feature = "netdev")]
#[cfg_attr(docsrs, doc(cfg(feature = "netdev")))]
pub mod netdev;
#[cfg(feature = "net-shaper")]
#[cfg_attr(docsrs, doc(cfg(feature = "net-shaper")))]
#[path = "net-shaper/mod.rs"]
pub mod net_shaper;
#[cfg(feature = "nfsd")]
#[cfg_attr(docsrs, doc(cfg(feature = "nfsd")))]
pub mod nfsd;
#[cfg(feature = "nftables")]
#[cfg_attr(docsrs, doc(cfg(feature = "nftables")))]
pub mod nftables;
#[cfg(feature = "nl80211")]
#[cfg_attr(docsrs, doc(cfg(feature = "nl80211")))]
pub mod nl80211;
#[cfg(feature = "nlctrl")]
#[cfg_attr(docsrs, doc(cfg(feature = "nlctrl")))]
pub mod nlctrl;
#[cfg(feature = "ovpn")]
#[cfg_attr(docsrs, doc(cfg(feature = "ovpn")))]
pub mod ovpn;
#[cfg(feature = "ovs_datapath")]
#[cfg_attr(docsrs, doc(cfg(feature = "ovs_datapath")))]
pub mod ovs_datapath;
#[cfg(feature = "ovs_flow")]
#[cfg_attr(docsrs, doc(cfg(feature = "ovs_flow")))]
pub mod ovs_flow;
#[cfg(feature = "ovs_packet")]
#[cfg_attr(docsrs, doc(cfg(feature = "ovs_packet")))]
pub mod ovs_packet;
#[cfg(feature = "ovs_vport")]
#[cfg_attr(docsrs, doc(cfg(feature = "ovs_vport")))]
pub mod ovs_vport;
#[cfg(feature = "psp")]
#[cfg_attr(docsrs, doc(cfg(feature = "psp")))]
pub mod psp;
#[cfg(feature = "rt-addr")]
#[cfg_attr(docsrs, doc(cfg(feature = "rt-addr")))]
#[path = "rt-addr/mod.rs"]
pub mod rt_addr;
#[cfg(feature = "rt-link")]
#[cfg_attr(docsrs, doc(cfg(feature = "rt-link")))]
#[path = "rt-link/mod.rs"]
pub mod rt_link;
#[cfg(feature = "rt-neigh")]
#[cfg_attr(docsrs, doc(cfg(feature = "rt-neigh")))]
#[path = "rt-neigh/mod.rs"]
pub mod rt_neigh;
#[cfg(feature = "rt-route")]
#[cfg_attr(docsrs, doc(cfg(feature = "rt-route")))]
#[path = "rt-route/mod.rs"]
pub mod rt_route;
#[cfg(feature = "rt-rule")]
#[cfg_attr(docsrs, doc(cfg(feature = "rt-rule")))]
#[path = "rt-rule/mod.rs"]
pub mod rt_rule;
#[cfg(feature = "sunrpc")]
#[cfg_attr(docsrs, doc(cfg(feature = "sunrpc")))]
pub mod sunrpc;
#[cfg(feature = "tc")]
#[cfg_attr(docsrs, doc(cfg(feature = "tc")))]
pub mod tc;
#[cfg(feature = "tcp_metrics")]
#[cfg_attr(docsrs, doc(cfg(feature = "tcp_metrics")))]
pub mod tcp_metrics;
#[cfg(feature = "team")]
#[cfg_attr(docsrs, doc(cfg(feature = "team")))]
pub mod team;
#[cfg(feature = "unix-diag")]
#[cfg_attr(docsrs, doc(cfg(feature = "unix-diag")))]
#[path = "unix-diag/mod.rs"]
pub mod unix_diag;
#[cfg(feature = "wireguard")]
#[cfg_attr(docsrs, doc(cfg(feature = "wireguard")))]
pub mod wireguard;