 
      
    | You are here | manishearth.github.io | ||
| | | | | dehora.net | |
| | | | | Back in 2013, I started a series of posts on programming languages I found interesting. One of the languages I wanted to write about at that time was Rust. As often happens, life got in the way, and it's only now that I'm coming round to a long overdue post. This is one of a series of posts on programming languages and you can read more about thathere. | |
| | | | | jmmv.dev | |
| | | | | Dependency injection is one of my favorite design patterns to develop highly-testable and modular code. Unfortunately, applying this pattern by taking Rust traits as arguments to public functions has unintended consequences on the visibility of private symbols. If you are not careful, most of your crate-internal APIs might need to become public just because you needed to parameterize a function with a trait. Let's look at why this happens and what we can do about it. | |
| | | | | www.shuttle.dev | |
| | | | | All about Rust traits, generics, trait bounds and implementing advanced trait bounds | |
| | | | | sookocheff.com | |
| | | In a purely functional language - like lambda calculus - programs are expressed as nested function calls. Repetition in such an environment requires that nesting of function calls continues until some condition is met. During the repetition, each function passes its result to the next function in the nested chain and this repetition is completed when a test for some condition passes. The repetitive behaviour I've just described is recursion: | ||