fluent-templates
fluent-templates copied to clipboard
Static Loader doesn't notice new files when rebuilding
When I use include_str or similar macros, if I change the referenced file and rebuild, cargo notices the change and rebuilds the source file.
Unfortunately, in my initial testing, I can't seem to get the static_loader! to reload new content without changing some other source file. Is there a way to get the static_loader! macro to notify Cargo that it's depending on those files and to rebuild if they change?
The way I'm testing is I have this snippet:
fluent_templates::static_loader! {
// Declare our `StaticLoader` named `LOCALES`.
pub static LOCALES = {
// The directory of localisations and fluent resources.
locales: "./shared/src/strings",
// The language to fallback on if something is not present.
fallback_language: "en-US",
};
}
And I load it and render a string out from the referenced LOCALES, and if I run the program once, change the string, cargo run again I don't see the new value. If I cargo clean I do.
Thank you for the great library; it is very easy to use.
Just a quick update, a simple workaround for me was to use include_dir to include the directory a second time. However include_dir references the files, it notices when I re-run my project.
I found how this would be accomplished during a build.rs process, but not how it's done inside of a macro.
Good luck and thanks again for the awesome crate. I like the ergonomics a lot.
Did a little research, found this relevant thread: https://users.rust-lang.org/t/equivalent-of-cargo-rerun-if-changed-for-procedural-macros/37036
Thank you for your issue! There's also https://internals.rust-lang.org/t/let-proc-macros-pass-information-to-the-compiler/8350
I've just pushed a fix to master that should mean that rustc will notice changes to existing files, though you still need a clean build to add files.