Module cache_buster::processor [−][src]
Module cache_buster::processor [−][src]
Module describing file processor that changes filenames to setup cache-busting
Run the following during build using build.rs
:
diff --git a/cache_buster/processor/struct.Buster.html b/cache_buster/processor/struct.Buster.html index 94ab8c3..34df283 100644 --- a/cache_buster/processor/struct.Buster.html +++ b/cache_buster/processor/struct.Buster.html @@ -2,7 +2,7 @@Struct cache_buster::
processor:: [−][src]Buster pub struct Buster<'a> { /* fields omitted */ }Configuration for setting up cache-busting
-Implementations
impl<'a> Buster<'a>
[src]
pub fn process(&self) -> Result<(), Error>
[src]Processes files.
+Implementations
Trait Implementations
impl<'a> Clone for Buster<'a>
[src]
fn clone(&self) -> Buster<'a>
[src]Returns a copy of the value. Read more
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from
diff --git a/search-index.js b/search-index.js index 040253b..0c7daab 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = JSON.parse('{\ "actix_web":{"doc":"","t":[3,17,3,3,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,5,5,0,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,3,5,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5],"n":["Asset","CACHE_AGE","FILES","Favicons","INDEX","__private_field","__private_field","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deref","deref","favicons","from","from","from","from","from","from","from","get","get","get","get","handle_assets","handle_favicons","index","initialize","initialize","into","into","into","into","into","into","into","iter","iter","iter","iter","main","register","register","register","serve_index","services","static_files","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","get_index"],"q":["actix_web","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_web::index"],"d":["Embed files. Or not. You can also read files dynamically","Set a riddicolusly high cache age","create filemap","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,1,2,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,0,1,2,3,4,5,6,7,3,3,6,6,0,0,0,1,2,1,2,3,4,5,6,7,3,3,6,6,0,4,5,7,0,0,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,0],"f":[null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["files",3]],[[],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],["httpresponse",3]],[[["str",15]],["httpresponse",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["filenames",4]],[[],["filenames",4]],[[]],[[],["result",6]],[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],null,[[["serviceconfig",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]]],"p":[[3,"FILES"],[3,"INDEX"],[3,"Asset"],[3,"static_files"],[3,"serve_index"],[3,"Favicons"],[3,"favicons"]]},\ -"cache_buster":{"doc":"What is cache busting?","t":[17,0,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["CACHE_BUSTER_DATA_FILE","filemap","processor","Files","borrow","borrow_mut","clone","clone_into","deserialize","eq","fmt","from","get","get_full_path","into","ne","new","serialize","to_owned","try_from","try_into","type_id","Buster","BusterBuilder","BusterBuilderError","FileExtentions","FilePaths","NoHashCategory","UninitializedField","ValidationError","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone_into","clone_into","clone_into","copy","default","fmt","fmt","fmt","fmt","follow_links","from","from","from","from","from","from","into","into","into","into","mime_types","no_hash","prefix","process","result","source","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id"],"q":["cache_buster","","","cache_buster::filemap","","","","","","","","","","","","","","","","","","","cache_buster::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["file to which filemap is written during compilation …","Module describing runtime compoenet for fetching modified …","Module describing file processor that changes filenames …","Filemap struct","","","","","","","","","Get relative file path","Get file path","","","Load filemap in main program. Should be called from main …","","","","","","Configuration for setting up cache-busting","Builder forsource
. Read moreBuster
.","Error type for BusterBuilder","vector of file extensions that should be avoided for hash …","list of file paths that should be avoided for file …","Items to avoid hash calculation.","Uninitialized field","Custom validation error","","","","","","","","","Builds a newBuster
.","","","","","","","copy other non-hashed files from source dire to result …","","","","","","follow symlinks?","","","","","","","","","","","mime_types for hashing","exclude these files for hashing. They will be copied over …","route prefixes","Processes files.","directory for writing results","source directory","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,2,0,3,3,2,4,3,5,2,4,3,5,4,2,4,5,2,4,5,4,4,2,3,3,5,4,2,4,3,3,3,5,2,4,3,5,4,4,4,5,4,4,2,4,5,3,2,4,3,5,2,4,3,5,2,4,3,5],"f":[null,null,null,null,[[]],[[]],[[],["files",3]],[[]],[[],["result",4]],[[["files",3]],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[["str",15]],[["str",15],["option",4]]],[[["str",15]],[["string",3],["option",4]]],[[]],[[["files",3]],["bool",15]],[[["str",15]]],[[],["result",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[["busterbuildererror",4],["result",4],["buster",3]]],[[],["nohashcategory",4]],[[],["busterbuilder",3]],[[],["buster",3]],[[]],[[]],[[]],[[["bool",15]]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["bool",15]]],[[]],[[]],[[["uninitializedfielderror",3]]],[[]],[[["string",3]]],[[]],[[]],[[]],[[]],[[]],[[["vec",3],["into",8]]],[[["vec",3],["nohashcategory",4]]],[[["into",8],["string",3]]],[[],[["result",4],["error",3]]],[[["into",8],["string",3]]],[[["into",8],["string",3]]],[[]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]]],"p":[[3,"Files"],[4,"NoHashCategory"],[4,"BusterBuilderError"],[3,"BusterBuilder"],[3,"Buster"]]}\ +"cache_buster":{"doc":"What is cache busting?","t":[17,0,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["CACHE_BUSTER_DATA_FILE","filemap","processor","Files","borrow","borrow_mut","clone","clone_into","deserialize","eq","fmt","from","get","get_full_path","into","ne","new","serialize","to_owned","try_from","try_into","type_id","Buster","BusterBuilder","BusterBuilderError","FileExtentions","FilePaths","NoHashCategory","UninitializedField","ValidationError","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","clone","clone","clone","clone_into","clone_into","clone_into","copy","default","fmt","fmt","fmt","fmt","follow_links","from","from","from","from","from","from","into","into","into","into","mime_types","no_hash","prefix","process","result","source","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id"],"q":["cache_buster","","","cache_buster::filemap","","","","","","","","","","","","","","","","","","","cache_buster::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["file to which filemap is written during compilation …","Module describing runtime compoenet for fetching modified …","Module describing file processor that changes filenames …","Filemap struct","","","","","","","","","Get relative file path","Get file path","","","Load filemap in main program. Should be called from main …","","","","","","Configuration for setting up cache-busting","Builder forBuster
.","Error type for BusterBuilder","vector of file extensions that should be avoided for hash …","list of file paths that should be avoided for file …","Items to avoid hash calculation.","Uninitialized field","Custom validation error","","","","","","","","","Builds a newBuster
.","","","","","","","copy other non-hashed files from source dire to result …","","","","","","follow symlinks?","","","","","","","","","","","mime_types for hashing","exclude these files for hashing. They will be copied over …","route prefixes","Processes files.","directory for writing results","source directory","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,2,0,3,3,2,4,3,5,2,4,3,5,4,2,4,5,2,4,5,4,4,2,3,3,5,4,2,4,3,3,3,5,2,4,3,5,4,4,4,5,4,4,2,4,5,3,2,4,3,5,2,4,3,5,2,4,3,5],"f":[null,null,null,null,[[]],[[]],[[],["files",3]],[[]],[[],["result",4]],[[["files",3]],["bool",15]],[[["formatter",3]],["result",6]],[[]],[[["str",15]],[["str",15],["option",4]]],[[["str",15]],[["string",3],["option",4]]],[[]],[[["files",3]],["bool",15]],[[["str",15]]],[[],["result",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[["result",4],["buster",3],["busterbuildererror",4]]],[[],["nohashcategory",4]],[[],["busterbuilder",3]],[[],["buster",3]],[[]],[[]],[[]],[[["bool",15]]],[[]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["bool",15]]],[[]],[[]],[[["uninitializedfielderror",3]]],[[]],[[["string",3]]],[[]],[[]],[[]],[[]],[[]],[[["vec",3],["into",8]]],[[["vec",3],["nohashcategory",4]]],[[["string",3],["into",8]]],[[],[["result",4],["error",3]]],[[["string",3],["into",8]]],[[["string",3],["into",8]]],[[]],[[]],[[]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]]],"p":[[3,"Files"],[4,"NoHashCategory"],[4,"BusterBuilderError"],[3,"BusterBuilder"],[3,"Buster"]]}\ }'); if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file diff --git a/src/actix_web/main.rs.html b/src/actix_web/main.rs.html index 2687b91..809d4a4 100644 --- a/src/actix_web/main.rs.html +++ b/src/actix_web/main.rs.html @@ -302,10 +302,10 @@ #[actix_rt::test] async fn static_assets_work() { - let mut app = test::init_service(App::new().configure(services)).await; + let app = test::init_service(App::new().configure(services)).await; let img_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri( &crate::FILES @@ -318,7 +318,7 @@ assert_eq!(img_resp.status(), StatusCode::OK); let css_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri( &crate::FILES @@ -331,7 +331,7 @@ assert_eq!(css_resp.status(), StatusCode::OK); let favicon_resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri("/favicon.ico").to_request(), ) .await; diff --git a/src/cache_buster/processor.rs.html b/src/cache_buster/processor.rs.html index 4380c97..8530aa7 100644 --- a/src/cache_buster/processor.rs.html +++ b/src/cache_buster/processor.rs.html @@ -551,6 +551,7 @@ 548 549 550 +551/* * Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net> @@ -672,6 +673,7 @@ // creates base_dir to output files to fn init(&self) -> Result<(), Error> { let res = Path::new(&self.result); + println!("cargo:rerun-if-changed={}", self.source); if res.exists() { fs::remove_dir_all(&self.result).unwrap(); } @@ -983,7 +985,7 @@ let source = Path::new(k); let dest = Path::new(&v); let no_hash = Path::new(file); - source == &Path::new(&config.source).join(file) + source == Path::new(&config.source).join(file) && dest.exists() && no_hash.file_name() == dest.file_name() })); @@ -1061,7 +1063,7 @@ config.process().unwrap(); let files = Files::load(); - assert!(files.map.iter().any(|(k, v)| { + assert!(files.map.iter().any(|(_k, v)| { let dest = Path::new(&v); dest.extension().unwrap().to_str().unwrap() == APPLICATION_WASM && dest.exists() })); @@ -1080,7 +1082,7 @@ let source = Path::new(k); let dest = Path::new(&v); let no_hash = Path::new(file); - source == &Path::new(&config.source).join(file) + source == Path::new(&config.source).join(file) && dest.exists() && no_hash.file_name() == dest.file_name() }));