~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. Cargo.lock +1 -1
  2. Cargo.toml +2 -2
  3. src/lib.rs +17 -0
Cargo.lock CHANGED
@@ -13,7 +13,7 @@ dependencies = [
13
13
 
14
14
  [[package]]
15
15
  name = "rust-embed"
16
- version = "0.3.3"
16
+ version = "0.3.4"
17
17
  dependencies = [
18
18
  "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
19
19
  "walkdir 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rust-embed"
3
- version = "0.3.3"
3
+ version = "0.3.4"
4
4
  description = "Rust Marco which loads files into the rust binary at compile time during release and loads the file from the fs during dev"
5
5
  readme = "readme.md"
6
6
  documentation = "https://docs.rs/rust-embed"
@@ -11,7 +11,7 @@ categories = ["web-programming::http-server"]
11
11
  authors = ["pyros2097 <pyros2097@gmail.com>"]
12
12
 
13
13
  [lib]
14
- proc-macro = true
14
+ plugin = true
15
15
 
16
16
  [dependencies]
17
17
  log = "0.4"
src/lib.rs CHANGED
@@ -1,3 +1,6 @@
1
+ #![crate_type = "dylib"]
2
+ #![feature(plugin_registrar)]
3
+
1
4
  #[macro_use]
2
5
  extern crate log;
3
6
  extern crate walkdir;
@@ -67,6 +70,20 @@ macro_rules! embed {
67
70
  ($x:expr) => ( ::generate_assets($x) )
68
71
  }
69
72
 
73
+ macro_rules! register_macros {
74
+ ($reg:expr, $($n:expr => $f:ident),+) => (
75
+ $($reg.register_macro($n, macros::$f);)+
76
+ )
77
+ }
78
+
79
+ /// Compiler hook for Rust to register plugins.
80
+ #[plugin_registrar]
81
+ pub fn plugin_registrar(reg: &mut Registry) {
82
+ register_macros!(reg,
83
+ "embeb" => embed,
84
+ );
85
+ }
86
+
70
87
  #[cfg(test)]
71
88
  mod tests {
72
89
  #[test]