Appearance
Rust常用的库
lazy_static
用于定义全局变量的库,可读可写
rust
use lazy_static::lazy_static;
use std::collections::HashMap;
use std::sync::{Arc, Mutex};
lazy_static! {
static ref HASHMAP: Arc<Mutex<HashMap<u32, &'static str>>> = {
let mut m = HashMap::new();
m.insert(0, "foo");
m.insert(1, "bar");
m.insert(2, "baz");
Arc::new(Mutex::new(m))
};
}
fn main() {
let mut map = HASHMAP.lock().unwrap();
map.insert(3, "waz");
println!("map: {:?}", map);
}
use lazy_static::lazy_static;
use std::collections::HashMap;
use std::sync::{Arc, Mutex};
lazy_static! {
static ref HASHMAP: Arc<Mutex<HashMap<u32, &'static str>>> = {
let mut m = HashMap::new();
m.insert(0, "foo");
m.insert(1, "bar");
m.insert(2, "baz");
Arc::new(Mutex::new(m))
};
}
fn main() {
let mut map = HASHMAP.lock().unwrap();
map.insert(3, "waz");
println!("map: {:?}", map);
}
clap
用于定义命令行的工具
rust
cargo add clap --features derive
cargo add clap --features derive
rust
use clap::Parser;
/// Simple program to greet a person
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
/// Name of the person to greet
#[arg(short, long)]
name: String,
/// Number of times to greet
#[arg(short, long, default_value_t = 1)]
count: u8,
}
fn main() {
let args = Args::parse();
for _ in 0..args.count {
println!("Hello {}!", args.name)
}
}
use clap::Parser;
/// Simple program to greet a person
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
/// Name of the person to greet
#[arg(short, long)]
name: String,
/// Number of times to greet
#[arg(short, long, default_value_t = 1)]
count: u8,
}
fn main() {
let args = Args::parse();
for _ in 0..args.count {
println!("Hello {}!", args.name)
}
}