Struct wasm_run::Hooks [−][src]
pub struct Hooks {
pub pre_build: Box<dyn Fn(&dyn BuildArgs, BuildProfile, &mut Command) -> Result<()> + Send + Sync>,
pub post_build: Box<dyn Fn(&dyn BuildArgs, BuildProfile, String, Vec<u8>) -> Result<()> + Send + Sync>,
pub serve: Box<dyn Fn(&dyn ServeArgs, &mut Server<()>) -> Result<()> + Send + Sync>,
pub frontend_watch: Box<dyn Fn(&dyn ServeArgs, &mut RecommendedWatcher) -> Result<()> + Send + Sync>,
pub backend_watch: Box<dyn Fn(&dyn ServeArgs, &mut RecommendedWatcher) -> Result<()> + Send + Sync>,
pub backend_command: Box<dyn Fn(&dyn ServeArgs, &mut Command) -> Result<()> + Send + Sync>,
}Expand description
Hooks.
Check the code of Hooks::default() implementation to see what they do by default.
If you don’t provide your own hook, the default code will be executed. But if you do provide a hook, the code will be replaced.
Fields
pre_build: Box<dyn Fn(&dyn BuildArgs, BuildProfile, &mut Command) -> Result<()> + Send + Sync>This hook will be run before the WASM is compiled. It does nothing by default. You can tweak the command-line arguments of the build command here or create additional files in the build directory.
post_build: Box<dyn Fn(&dyn BuildArgs, BuildProfile, String, Vec<u8>) -> Result<()> + Send + Sync>This hook will be run after the WASM is compiled and optimized. By default it copies the static files to the build directory.
serve: Box<dyn Fn(&dyn ServeArgs, &mut Server<()>) -> Result<()> + Send + Sync>This hook will be run before running the HTTP server. By default it will add routes to the files in the build directory.
frontend_watch: Box<dyn Fn(&dyn ServeArgs, &mut RecommendedWatcher) -> Result<()> + Send + Sync>This hook will be run before starting to watch for changes in files.
By default it will add all the src/ directories and Cargo.toml files of all the crates
in the workspace plus the static/ directory if it exists in the frontend crate.
backend_watch: Box<dyn Fn(&dyn ServeArgs, &mut RecommendedWatcher) -> Result<()> + Send + Sync>This hook will be run before starting to watch for changes in files. By default it will add the backend crate directory and all its dependencies. But it excludes the target directory.
backend_command: Box<dyn Fn(&dyn ServeArgs, &mut Command) -> Result<()> + Send + Sync>This hook will be run before (re-)starting the backend.
You can tweak the cargo command that is run here: adding/removing environment variables or
adding arguments.
By default it will do cargo run -p <backend_crate>.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Hooks
impl !UnwindSafe for Hooks
Blanket Implementations
Mutably borrows from an owned value. Read more
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more
Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read more