1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! Library to write CNI plugins.
//!
//! - CNI information: on the [cni.dev](https://cni.dev) website.
//! - [Tooling overview][tools]
//! - [Tutorial][tuto]
//!
//! [tools]: https://github.com/passcod/cni-plugins/blob/main/docs/Standard-Tooling.md
//! [tuto]: https://github.com/passcod/cni-plugins/blob/main/docs/Plugin-Hello-World.md
//!
//! # Quick start
//!
//! ```no_run
//! use cni_plugin::{Cni, logger};
//! logger::install(env!("CARGO_PKG_NAME"));
//! match Cni::load() {
//! Cni::Add { container_id, ifname, netns, path, config } => {}
//! Cni::Del { container_id, ifname, netns, path, config } => {}
//! Cni::Check { container_id, ifname, netns, path, config } => {}
//! Cni::Version(_) => unreachable!()
//! }
//! ```
//!
//! or:
//!
//! ```no_run
//! use cni_plugin::{Cni, Inputs, logger};
//! logger::install(env!("CARGO_PKG_NAME"));
//!
//! let Inputs {
//! command, container_id, ifname, netns, path, config
//! } = Cni::load().into_inputs().unwrap();
//! ```
pub use Cni;
pub use Command;
pub use Inputs;