Good choice. Follow it with this Little Book of Rust Macros. And don’t verge into the unsafe stuff early, and don’t verge into it later unless it’s really necessary.
Yes agree, I need unsafe super rarely, and often it’s just for small optimizations (like std::mem::transmute::(kind) where SyntaxKind is an enum with #[repr(u16)]).
But I guess it depends on what you’re doing exactly though (the higher-level, the less unsafe you need).
Good choice. Follow it with this Little Book of Rust Macros. And don’t verge into the
unsafe
stuff early, and don’t verge into it later unless it’s really necessary.Yes agree, I need
unsafe
super rarely, and often it’s just for small optimizations (likestd::mem::transmute::(kind)
whereSyntaxKind
is an enum with#[repr(u16)]
).But I guess it depends on what you’re doing exactly though (the higher-level, the less unsafe you need).