2 个版本
新版本 0.1.1 | 2024 年 8 月 23 日 |
---|---|
0.1.0 | 2024 年 8 月 23 日 |
#9 in #ergonomics
44KB
725 行
documents
Documents 是一个易于使用、直观且适合初学者的库,用于处理文件和文件夹。
示例
use documents::prelude::*;
fn main() {
test1();
test2();
}
fn test1() {
with(
&[
Document::at(User(Pictures(&[])), "1.png", Create::No),
Document::at(User(Pictures(&[])), "42-44.png", Create::No),
Document::at(
User(Pictures(&["Movie Trailer"])),
"thumbnail.png",
Create::No,
)
.alias("pic"),
Document::at(User(Downloads(&[])), "file.txt", Create::No),
],
|mut d| {
for (alias, doc) in d.clone() {
println!("{alias}: {doc:?}");
}
println!("{}", d["1.png"].name());
d["pic"].launch_with_default_app()?;
d["file.txt"]
.append(b"Something\nto be added")?
.launch_with_default_app()?
.lines()?
.print()?;
Ok(())
},
);
}
fn test2() {
let a: &[&dyn FileSystemEntity] = &[
&Document::at(User(Pictures(&[""])), "pic", Create::No),
&User(Pictures(&[""])),
&Project(Data(&[]).with_id("qualifier", "organization", "application")),
&PathBuf::new(),
];
for b in a {
println!(
"{:?} {} exist.",
b,
if b.exists() { "does" } else { "doesn't" }
);
}
}
依赖项
~0.4–10MB
~62K SLoC