@koute Really neat start you have here. I was considering doing something like this. I'm wondering how much you're committed to this and where you see this library going.
I see a lot that can be cleaned up, refactored, etc. One big one is keeping closer to libretro terminology.
-
Backend => Core is a big one I'd think
-
libretro-backend => retro-core — Generally I don't see the C convention of "lib-" being carried over into the rust name.
-
Use https://github.com/rust-lang-nursery/lazy-static.rs for the instance mutable static
-
to_cstring( name ) can be replaced with CString::new
-
instead of supports_roms_with_extension("nes") perhaps supports_extensions(&["nes"])
-
Rather than ::on_initialize() perhaps ::info() or ::system_info() implemented like:
fn system_info(&self) -> SystemInfo {
SystemInfo::new("Pinky")
.version("0.0")
.supports_extensions(&["nes", "nes2"])
.requires_path(false)
}
Any thoughts? I can do things bit by bit in pull requests.
@koute Really neat start you have here. I was considering doing something like this. I'm wondering how much you're committed to this and where you see this library going.
I see a lot that can be cleaned up, refactored, etc. One big one is keeping closer to libretro terminology.
Backend
=>Core is a big one I'd thinklibretro-backend
=>retro-core — Generally I don't see the C convention of "lib-" being carried over into the rust name.Use https://github.com/rust-lang-nursery/lazy-static.rs for the instance mutable static
to_cstring( name )can be replaced withCString::newinstead of
supports_roms_with_extension("nes")perhapssupports_extensions(&["nes"])Rather than
::on_initialize()perhaps::info()or::system_info()implemented like:Any thoughts? I can do things bit by bit in pull requests.