basic/
basic.rs

1use brctl::{BridgeController, CommandError};
2
3fn main() -> Result<(), CommandError> {
4	env_logger::init();
5
6	match BridgeController::check() {
7		Ok((brctl_version, interfaces)) => {
8			println!("brctl version: {}", brctl_version);
9			println!("Interfaces: {:?}", interfaces);
10
11			println!("The system is ready for bridge operations!")
12		}
13		Err(e) => eprintln!("The system is not ready for bridge operations: {}", e),
14	}
15
16	println!();
17
18	if let Some(mybridge) = BridgeController::get_bridge("mybridge")? {
19		mybridge.delete()?;
20	}
21
22	let mybridge = BridgeController::create_bridge("mybridge")?;
23
24	mybridge.add_interface("enp9s0")?;
25
26	let bridges = BridgeController::list_bridges()?;
27	println!("Available bridges:");
28	for b in bridges {
29		println!("  - {}", b);
30	}
31
32	println!();
33
34	println!("{}:", mybridge.get_name());
35	println!("  Interfaces:");
36	for i in mybridge.get_interfaces()? {
37		println!("    - {}", i);
38	}
39
40	println!("  ID: {}", mybridge.get_id()?);
41	println!("  STP: {}", mybridge.get_stp()?);
42
43	println!();
44
45	let mybridge = BridgeController::get_bridge("mybridge")?;
46	assert!(mybridge.is_some(), "Bridge not found");
47	mybridge.expect("Bridge not found").delete()?;
48
49	let mybridge = BridgeController::get_bridge("mybridge")?;
50	assert!(mybridge.is_none(), "Bridge not deleted");
51
52	println!("Bridge deleted successfully");
53	Ok(())
54}