2022-12-16
2145
#rust
Andre Bogus
148572
104
Dec 16, 2022 â‹… 7 min read

How to build a Rust API with the builder pattern

Andre Bogus Andre "llogiq" Bogus is a Rust contributor and Clippy maintainer. A musician-turned-programmer, he has worked in many fields, from voice acting and teaching, to programming and managing software projects. He enjoys learning new things and telling others about them.

Recent posts:

Handling React Loading States With React Loading Skeleton

Handling React loading states with React Loading Skeleton

Implement a loading state, or loading skeleton, in React with and without external dependencies like the React Loading Skeleton package.

Ibadehin Mojeed
Jan 7, 2025 â‹… 7 min read
Getting Ready For Tailwind V4.0

Getting ready for Tailwind v4.0

The beta version of Tailwind CSS v4.0 was released a few months ago. Explore the new developments and how Tailwind makes the build process faster and simpler.

Oscar Jite-Orimiono
Jan 6, 2025 â‹… 12 min read

Mastering charts and database visualization with ChartDB

ChartDB is a powerful tool designed to simplify and enhance the process of visualizing complex databases. Explore how to get started with ChartDB to enhance your data storytelling.

David Omotayo
Jan 3, 2025 â‹… 7 min read
JavaScript icon over teal background.

JavaScript scroll snap events for scroll-triggered animations

Learn how to use JavaScript scroll snap events for dynamic scroll-triggered animations, enhancing user experience seamlessly.

Abiola Farounbi
Jan 2, 2025 â‹… 7 min read
View all posts

2 Replies to "How to build a Rust API with the builder pattern"

  1. The build patterns are awkward because of the borrow checker, the complexity is obvious from articles like this. So my conclusion is actually that optional named parameters are very much needed in Rust to alleviate the creation of objects with a less heavy solution that is more efficient, easier to read and that doesn’t require the creation of intermediate objects.

    Another alternative is to make functions and methods optionally pass ownership, only if the function/method output is assigned to a variable.

  2. I disagree. First, often you can get away with having one or two methods or a plain struct to work with. The builder just ensures a nice and flexible interface while keeping open the door to later changes. Also the complexity cost is mostly paid by libraries which are usually meant to be reused, thus amortizing the investment.

Leave a Reply