~repos /rust-embed

#rust#proc-macro#http

git clone https://pyrossh.dev/repos/rust-embed.git

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


3ce5d7bd pyros2097

7 years ago
make plugin again
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]