mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-18 14:24:05 +00:00
45 lines
2.0 KiB
Rust
45 lines
2.0 KiB
Rust
use tabled::{
|
|
settings::{themes::Theme, Style},
|
|
Table, Tabled,
|
|
};
|
|
|
|
#[derive(Tabled)]
|
|
struct Concept {
|
|
name: String,
|
|
desc: String,
|
|
}
|
|
|
|
impl Concept {
|
|
fn new(name: &str, desc: &str) -> Self {
|
|
Self {
|
|
name: name.to_string(),
|
|
desc: desc.to_string(),
|
|
}
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let data = vec![
|
|
Concept::new("vnode", "A structure representing a filesystem entity like a file, directory, device node, etc at VFS abstraction level"),
|
|
Concept::new("Physical block number", "In the context of FreeBSD filesystems layer we use this term when referring to fixed-size 512-byte blocks"),
|
|
Concept::new("Logical block number", "Typical filesystems have a notion of filesystem blocks which may be constituted of multiple physical (512-byte) or media blocks"),
|
|
Concept::new("Device vnode", "A filesystem is backed by some media that actually contains the data"),
|
|
Concept::new("Buffer cache", "Buffer cache is a layer between filesystems and I/O code that performs actual media access via peripheral drivers"),
|
|
Concept::new("struct bufobj", "struct bufobj represents a set of buffers belonging to the same abstract object"),
|
|
Concept::new("struct buf", "struct buf represents a single buffer. In addition to holding identity of the buffer"),
|
|
Concept::new("bread(9)", "Filesystem use bread (breadn, breada, etc) functions to access underlying data through a buffer cache layer"),
|
|
Concept::new("VOP_BMAP", "VOP_BMAP translates a given logical block number within a given vnode to a physical (512-byte) block number within underlying media"),
|
|
Concept::new("VOP_STRATEGY", "VOP_STRATEGY method fulfills an I/O request described by given struct buf object"),
|
|
];
|
|
|
|
let mut theme = Theme::from_style(Style::ascii());
|
|
theme.reverse_rows(true);
|
|
theme.reverse_columns(true);
|
|
theme.set_footer(true);
|
|
|
|
let mut table = Table::new(data);
|
|
table.with(theme);
|
|
|
|
println!("{table}");
|
|
}
|