Files
codeql/rust/ql/test/library-tests/formatstrings/main.rs
2024-10-24 15:10:59 +02:00

78 lines
2.4 KiB
Rust

fn main() {
let width = 4;
let precision = 2;
let value = 10;
println!("Value {value:#width$.precision$}", value = 10.5);
println!("Value {0:#1$.2$}", value, width, precision);
println!("Value {} {}", value, width);
// Examples from https://doc.rust-lang.org/std/fmt
println!("Hello");
println!("Hello, {}!", "world");
println!("The number is {}", 1);
println!("{:?}", (3, 4));
println!("{value}", value = 4);
let people = "Rustaceans";
println!("Hello {people}!");
println!("{} {}", 1, 2);
println!("{:04}", 42);
println!("{:#?}", (100, 200));
println!("{1} {} {0} {}", 1, 2);
println!("Hello {:5}!", "x");
println!("Hello {:1$}!", "x", 5);
println!("Hello {1:0$}!", 5, "x");
println!("Hello {:width$}!", "x", width = 5);
let width = 5;
println!("Hello {:width$}!", "x");
assert_eq!(format!("Hello {:<5}!", "x"), "Hello x !");
assert_eq!(format!("Hello {:-<5}!", "x"), "Hello x----!");
assert_eq!(format!("Hello {:^5}!", "x"), "Hello x !");
assert_eq!(format!("Hello {:>5}!", "x"), "Hello x!");
println!("Hello {:^15}!", format!("{:?}", Some("hi")));
assert_eq!(format!("Hello {:+}!", 5), "Hello +5!");
assert_eq!(format!("{:#x}!", 27), "0x1b!");
assert_eq!(format!("Hello {:05}!", 5), "Hello 00005!");
assert_eq!(format!("Hello {:05}!", -5), "Hello -0005!");
assert_eq!(format!("{:#010x}!", 27), "0x0000001b!");
println!("Hello {0} is {1:.5}", "x", 0.01);
println!("Hello {1} is {2:.0$}", 5, "x", 0.01);
println!("Hello {0} is {2:.1$}", "x", 5, 0.01);
println!("Hello {} is {:.*}", "x", 5, 0.01);
println!("Hello {1} is {2:.*}", 5, "x", 0.01);
println!("Hello {} is {2:.*}", "x", 5, 0.01);
println!("Hello {} is {number:.prec$}", "x", prec = 5, number = 0.01);
println!(
"{}, `{name:.*}` has 3 fractional digits",
"Hello",
3,
name = 1234.56
);
println!(
"{}, `{name:.*}` has 3 characters",
"Hello",
3,
name = "1234.56"
);
println!(
"{}, `{name:>8.*}` has 3 right-aligned characters",
"Hello",
3,
name = "1234.56"
);
print!("{0:.1$e}", 12345, 3);
print!("{0:.1$e}", 12355, 3);
println!("The value is {}", 1.5);
assert_eq!(format!("Hello {{}}"), "Hello {}");
assert_eq!(format!("{{ Hello"), "{ Hello");
}