Hacker News new | past | comments | ask | show | jobs | submit login

Wouldn't you just use libc directly from Rust if you wanted that?

(I agree that it's a tradeoff generally, I'm just not sure this example is particularly motivating.)




> Wouldn't you just use libc directly from Rust if you wanted that?

No, because the interface is

    int stat(const char *path, struct stat *buf);



It would be physically impossible for a call to that function to work with a single definition of the struct stat, because the set of fields (and their ordering) and struct size differ between platforms. So that libc wrapper must provide separate definitions of the struct for each platform.


Ah, sorry! I was thinking about things like "the size of this type is different per-platform," not "every single platform has a different definition of this struct."

I still think that, given Cargo, the one-time cost makes it worth it, but after seeing my error, think that the point makes more sense. Thank you for being patient. :)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: