~repos /rust-embed
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.
7d5313d3
—
pyrossh 7 months ago
update formatting
README.md
CHANGED
|
@@ -59,35 +59,32 @@ pub struct Metadata {
|
|
|
59
59
|
}
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
## Methods
|
|
62
|
-
|
|
63
|
+
* `get(file_path: &str) -> Option<rust_embed::EmbeddedFile>`
|
|
63
64
|
|
|
64
65
|
Given a relative path from the assets folder returns the `EmbeddedFile` if found.
|
|
65
|
-
|
|
66
66
|
If the feature `debug-embed` is enabled or the binary compiled in release mode the bytes have been embeded in the binary and a `Option<rust_embed::EmbeddedFile>` is returned.
|
|
67
|
-
|
|
68
67
|
Otherwise the bytes are read from the file system on each call and a `Option<rust_embed::EmbeddedFile>` is returned.
|
|
69
68
|
|
|
70
|
-
|
|
69
|
+
* `iter()`
|
|
71
70
|
|
|
72
71
|
Iterates the files in this assets folder.
|
|
73
|
-
|
|
74
72
|
If the feature `debug-embed` is enabled or the binary compiled in release mode a static array to the list of relative paths to the files is returned.
|
|
75
|
-
|
|
76
73
|
Otherwise the files are listed from the file system on each call.
|
|
77
74
|
|
|
78
75
|
## Attributes
|
|
79
|
-
`prefix`
|
|
76
|
+
* `prefix`
|
|
80
77
|
|
|
81
78
|
You can add `#[prefix = "my_prefix/"]` to the `RustEmbed` struct to add a prefix
|
|
82
79
|
to all of the file paths. This prefix will be required on `get` calls, and will
|
|
83
80
|
be included in the file paths returned by `iter`.
|
|
84
81
|
|
|
85
|
-
`metadata_only`
|
|
82
|
+
* `metadata_only`
|
|
86
83
|
|
|
87
84
|
You can add `#[metadata_only = true]` to the `RustEmbed` struct to exclude file contents from the
|
|
88
85
|
binary. Only file paths and metadata will be embedded.
|
|
89
86
|
|
|
90
|
-
`allow_missing`
|
|
87
|
+
* `allow_missing`
|
|
91
88
|
|
|
92
89
|
You can add `#[allow_missing = true]` to the `RustEmbed` struct to allow the embedded folder to be missing.
|
|
93
90
|
In that case, RustEmbed will be empty.
|
|
@@ -95,16 +92,14 @@ In that case, RustEmbed will be empty.
|
|
|
95
92
|
## Features
|
|
96
93
|
|
|
97
94
|
* `debug-embed`: Always embed the files in the binary, even in debug mode.
|
|
95
|
+
* `compression`: Compress each file when embedding into the binary. Compression is done via [include-flate](https://crates.io/crates/include-flate).
|
|
96
|
+
* `deterministic-timestamps`: Overwrite embedded files' timestamps with `0` to preserve deterministic builds with `debug-embed` or release mode.
|
|
98
|
-
* `interpolate-folder-path`: Allow environment variables to be used in the `folder` path.
|
|
97
|
+
* `interpolate-folder-path`: Allow environment variables to be used in the `folder` path. This will pull the `foo` directory relative to your `Cargo.toml` file.
|
|
99
98
|
```rust
|
|
100
99
|
#[derive(Embed)]
|
|
101
100
|
#[folder = "$CARGO_MANIFEST_DIR/foo"]
|
|
102
101
|
struct Asset;
|
|
103
102
|
```
|
|
104
|
-
This will pull the `foo` directory relative to your `Cargo.toml` file.
|
|
105
|
-
|
|
106
|
-
* `compression`: Compress each file when embedding into the binary. Compression is done via [include-flate](https://crates.io/crates/include-flate).
|
|
107
|
-
|
|
108
103
|
* `include-exclude`: Filter files to be embedded with multiple `#[include = "*.txt"]` and `#[exclude = "*.jpg"]` attributes.
|
|
109
104
|
Matching is done on relative file paths, via [globset](https://crates.io/crates/globset). `exclude` attributes have higher priority than `include` attributes.
|
|
110
105
|
```rust
|
|
@@ -118,8 +113,6 @@ use rust_embed::Embed;
|
|
|
118
113
|
struct Asset;
|
|
119
114
|
```
|
|
120
115
|
|
|
121
|
-
* `deterministic-timestamps`: Overwrite embedded files' timestamps with `0` to preserve deterministic builds with `debug-embed` or release mode
|
|
122
|
-
|
|
123
116
|
## Usage
|
|
124
117
|
|
|
125
118
|
```rust
|