Как написать идиоматический шаблон сборки с цепочками вызовов методов в Rust?

Основываясь на следующих примерах, можно написать шаблон сборки с цепочечными вызовами методов в Rust, который либо проходит по значению, либо по ссылке (с указателем времени жизни)

Можно ли создать макрос для реализации методов шаблона построителя?Как перегрузить «новый» метод? (верхний ответ)https://github.com/rust-unofficial/patterns/blob/master/patterns/builder.md

Шаблон сборки в Rust может выглядеть примерно так:

 ui::Button::new()
    .label("Test")
    .align(Align::Center)
    .build();

При написании идиоматического Rust есть сильное предпочтение одного другому?

Есть ли хороший пример того, как написать это в Rust?

Ответы на вопрос(2)

Ваш ответ на вопрос