~repos /rust-embed

#rust#proc-macro#http

git clone https://pyrossh.dev/repos/rust-embed.git
Discussions: https://groups.google.com/g/rust-embed-devs

rust macro which loads files into the rust binary at compile time during release and loads the file from the fs during dev.


Files changed (3) hide show
  1. tests/lib.rs +1 -0
  2. tests/metadata.rs +11 -0
  3. utils/src/lib.rs +1 -1
tests/lib.rs CHANGED
@@ -10,6 +10,7 @@ fn get_works() {
10
10
  assert!(Asset::get("index.html").is_some(), "index.html should exist");
11
11
  assert!(Asset::get("gg.html").is_none(), "gg.html should not exist");
12
12
  assert!(Asset::get("images/llama.png").is_some(), "llama.png should exist");
13
+ assert!(Asset::get("images").is_some(), "images should exist");
13
14
  }
14
15
 
15
16
  /// Using Windows-style path separators (`\`) is acceptable
tests/metadata.rs CHANGED
@@ -25,3 +25,14 @@ fn last_modified_is_accurate() {
25
25
 
26
26
  assert_eq!(index_file.metadata.last_modified(), Some(expected_datetime_utc));
27
27
  }
28
+
29
+ #[test]
30
+ fn is_dir_is_accurate() {
31
+ let index_file: EmbeddedFile = Asset::get("index.html").expect("index.html exists");
32
+ let doc_file: EmbeddedFile = Asset::get("images/doc.txt").expect("doc.txt exists");
33
+ let images_folder: EmbeddedFile = Asset::get("images/").expect("images exists");
34
+
35
+ assert_eq!(index_file.metadata.is_dir(), false);
36
+ assert_eq!(doc_file.metadata.is_dir(), false);
37
+ assert!(images_folder.metadata.is_dir());
38
+ }
utils/src/lib.rs CHANGED
@@ -114,7 +114,7 @@ impl Metadata {
114
114
  }
115
115
 
116
116
  pub fn read_file_from_fs(file_path: &Path) -> io::Result<EmbeddedFile> {
117
- let data = fs::read(file_path)?;
117
+ let data = if !file_path.is_dir() { fs::read(file_path)? } else { Vec::new() };
118
118
  let data = Cow::from(data);
119
119
 
120
120
  let mut hasher = sha2::Sha256::new();