logoalt Hacker News

K0nservyesterday at 1:22 PM1 replyview on HN

> In c the callers isn’t choosing typically. The author of some library or api decides this for you.

Tbf this applies to Rust too. If the author writes

   fn foo(bar: Box<dyn BarTrait>)
they have forced the caller into dynamic dispatch.

Had they written

   fn foo(bar: impl BarTrait)
the choice would've remained open to the caller

Replies

nicoburnsyesterday at 1:32 PM

Right, but almost all APIs in Rust use something like

    fn foo(bar: impl BarTrait)
and AFAIK it isn't possible to write that in C (though C++ does allow this kind of thing).
show 2 replies