Красивые отступы в Rust
Стандартную библиотеку Rust можно сравнить с Python, она настолько же богата. В доставшимся недавно проекте, был CLI, главная задача которого выводить красивые ASCII отчетики. Первый вопрос у меня был зачем ее написали на Rust’е, а второй к ужасающий функции для формирования отступов. Не могу сказать, что она была плохая, но она мозолила глаза.
Решил переписать, чтобы разобраться во всех хитросплетениях, в итоге удалив ее. Оказалось в Rust есть отличная функция заполнения отступами!
fn main() {
let foo = 100;
let bar = 100000;
println!("{:>6}", foo);
println!("{:>6}", bar);
}
Выведет:
100
100000
Конечно же их можно комбинировать и заменять символ пробела на любой другой! Рисовать таблички одно удовольствие!
fn main() {
let title = "table";
let foo = "foo";
let bar = "bar";
let baz = "baz";
let count_foo = 200;
let count_bar = 3000;
let count_baz = 50000;
println!("{:_^width$}", title, width = 10 + 8);
println!("{:<10}|{:>7}", foo, count_foo);
println!("{:<10}|{:>7}", bar, count_bar);
println!("{:<10}|{:>7}", baz, count_baz);
}
Выведет:
______table_______
foo | 200
bar | 3000
baz | 50000
Знай stdlib своего языка и не городи костыли! Rust std::fmt.