!rust
@programming.devhttps://github.com/iced-rs/iced/releases/tag/0.13.0
Added Introductory chapters to the official guide book. Pocket guide in API reference. Program API. #2331 Task API. #2463 Daemon API and Shell Runtime Unification. #2469 rich_text and markdown wid...
https://cliffle.com/blog/rust-mutexes/
https://github.com/martinn/repoblame
Aggregate git blame stats across any git repository. Find out top contributors by Lines of Code. - martinn/repoblame
https://www.youtube.com/watch?v=_Q9KSFUZH0c
https://github.com/life4/textdistance.rs
🦀📏 Rust library to compare strings (or any sequences). 25+ algorithms, pure Rust, common interface, Unicode support. - life4/textdistance.rs
https://github.com/life4/textdistance.rs
🦀📏 Rust library to compare strings (or any sequences). 25+ algorithms, pure Rust, common interface, Unicode support. - life4/textdistance.rs
Hi all.
I want to develop a plugin system within my program, and I have a trait that functions defined by plugins should implement.
Currently, my code gets all the functions in a HashMap and then calls them by their name. Problem is, I have to create that hashmap myself by inserting every function myself.
I would really appreciate it if there was a way to say, suppose, all pub members of mod functions::
that implement this trait PluginFunction
call register(hashmap)
function. So as I add more functions as mod
in functions
it'll be automatically added on compile.
Pseudocode:
Files:
src/
├── attrs.rs
├── functions
│ ├── attrs.rs
│ ├── export.rs
│ └── render.rs
├── functions.rs
├── lib.rs
Basically, in mod functions
I want:
impl AllFunctions{
pub fn new() -> Self {
let mut functions_map = HashMap::new();[[
register_all!(crate::functions::* implementing PluginFunction, &mut functions_map);
Self { function_map }
}
}
Right now I'm doing:
impl AllFunctions{
pub fn new() -> Self {
let mut functions_map = HashMap::new();[[
crate::functions::attrs::PrintAttr{}.register(&mut functions_map);
crate::functions::export::ExportCSV{}.register(&mut functions_map);
crate::functions::render::RenderText{}.register(&mut functions_map);
// More as I add more functions
Self { function_map }
}
}
https://lwn.net/Articles/987967/