Красивые отступы в 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.