Skip to content
เข้าสู่ระบบ

Fmt Enums

Formatting enums

use std::fmt::{self, Formatter, Alignment};
struct AlignDemo(i32);
impl fmt::Display for AlignDemo {
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
// Get alignment from format specifier
let align = f.align();
let width = f.width().unwrap_or(0);
let s = self.0.to_string();
match align {
Some(Alignment::Left) => write!(f, "{:<width$}", s),
Some(Alignment::Right) => write!(f, "{:>width$}", s),
Some(Alignment::Center) => write!(f, "{:^width$}", s),
None => write!(f, "{}", s),
}
}
}
fn main() {
println!("=== Alignment Enum ===");
println!("Alignment::Left - '<'");
println!("Alignment::Right - '>'");
println!("Alignment::Center - '^'");
let val = AlignDemo(42);
println!("\n=== With width 10 ===");
println!("Left: [{:<10}]", val);
println!("Right: [{:>10}]", val);
println!("Center: [{:^10}]", val);
// With fill character
println!("\n=== With fill ===");
println!("Left: [{:*<10}]", 42);
println!("Right: [{:*>10}]", 42);
println!("Center: [{:*^10}]", 42);
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด