From 8dd31ecc77e22a634dd120fa16f0c627049ccafd Mon Sep 17 00:00:00 2001 From: RGBCube Date: Sun, 2 Feb 2025 21:51:31 +0300 Subject: [PATCH] Remove procmacro2_semver_exempt --- .cargo/config.toml | 2 -- .gitignore | 2 -- README.md | 10 ------- embd-macros/Cargo.toml | 5 +--- embd-macros/README.md | 68 ------------------------------------------ embd-macros/src/lib.rs | 17 ----------- embd/Cargo.toml | 5 +--- embd/README.md | 68 ------------------------------------------ embd/src/lib.rs | 13 -------- 9 files changed, 2 insertions(+), 188 deletions(-) delete mode 100644 .cargo/config.toml delete mode 100644 embd-macros/README.md delete mode 100644 embd/README.md diff --git a/.cargo/config.toml b/.cargo/config.toml deleted file mode 100644 index ed1e141..0000000 --- a/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[build] -rustflags = [ "--cfg", "procmacro2_semver_exempt" ] diff --git a/.gitignore b/.gitignore index 56c01cd..dd176ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ * -!.cargo/ - !embd/ !embd/src/ diff --git a/README.md b/README.md index 160a42c..de04e50 100644 --- a/README.md +++ b/README.md @@ -29,19 +29,9 @@ let dir: embd::Dir = embd::dir!("path/to"); let files: Vec = dir.flatten(); ``` -Note that you will need to enable the `procmacro2_semver_exempt` cfg -option to use this crate, you can enable it like so, by putting this in -`.cargo/config.toml` in the project root: - -```toml -[build] -rustflags = [ "--cfg", "procmacro2_semver_exempt" ] -``` - ## To-Do - [ ] Hot reloading of files in debug mode. -- [ ] Don't depend on `procmacro2_semver_exempt`. ## License diff --git a/embd-macros/Cargo.toml b/embd-macros/Cargo.toml index 00919d8..25ba032 100644 --- a/embd-macros/Cargo.toml +++ b/embd-macros/Cargo.toml @@ -8,10 +8,7 @@ categories = [ "filesystem" ] authors = [ "RGBCube" ] version = "0.1.4" edition = "2021" -include = [ "src/**/*.rs", "README.md" ] - -[package.metadata.docs.rs] -rustc-args = [ "--cfg", "procmacro2_semver_exempt" ] +include = [ "src/**/*.rs", "../README.md" ] [lib] proc-macro = true diff --git a/embd-macros/README.md b/embd-macros/README.md deleted file mode 100644 index 160a42c..0000000 --- a/embd-macros/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# embd-rs - -A super simple file and directory embedding crate, -that loads files from the filesystem on debug mode, -allowing for quick edit-and-test cycles without compilation. - -It is also super efficient, and does not heap allocate when the -files are embedded on release mode by utilizing `std::borrow::Cow`. - -On release mode it falls back to `include_str!`, `include_bytes!` -and our own custom `include_dir!`-like implementation. - -## Usage - -Add this to your Cargo.toml: - -```toml -[dependencies] -embd = "0.1" -``` - -Then you can use this crate like so: - -```rs -let contents: Cow<'_, str> = embd::string!("path/to/file.txt"); -let bytes: Cow<'_, [u8]> = embd::bytes!("path/to/image.png"); - -let dir: embd::Dir = embd::dir!("path/to"); -let files: Vec = dir.flatten(); -``` - -Note that you will need to enable the `procmacro2_semver_exempt` cfg -option to use this crate, you can enable it like so, by putting this in -`.cargo/config.toml` in the project root: - -```toml -[build] -rustflags = [ "--cfg", "procmacro2_semver_exempt" ] -``` - -## To-Do - -- [ ] Hot reloading of files in debug mode. -- [ ] Don't depend on `procmacro2_semver_exempt`. - -## License - -``` -Copyright (c) 2023-present RGBCube - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` diff --git a/embd-macros/src/lib.rs b/embd-macros/src/lib.rs index 898a55b..49a3b51 100644 --- a/embd-macros/src/lib.rs +++ b/embd-macros/src/lib.rs @@ -1,28 +1,15 @@ #![allow(unexpected_cfgs)] -#[cfg(procmacro2_semver_exempt)] use std::{ fs, path::Path, }; -#[cfg(not(procmacro2_semver_exempt))] -compile_error!( - r#"pass `--cfg procmacro2_semver_exempt` to rustc to compile embd-macros or add this to your `.cargo/config.toml`: - -[build] -rustflags = [ "--cfg", "procmacro2_semver_exempt" ] - -"# -); - -#[cfg(procmacro2_semver_exempt)] use proc_macro as pm1; use proc_macro2::TokenStream; use quote::{ quote, ToTokens, }; -#[cfg(procmacro2_semver_exempt)] use syn::{ parse_macro_input, spanned::Spanned, @@ -42,7 +29,6 @@ impl ToTokens for TokenVec { } #[proc_macro] -#[cfg(procmacro2_semver_exempt)] pub fn __dir(input: pm1::TokenStream) -> pm1::TokenStream { let input2 = input.clone(); let path = parse_macro_input!(input2 as LitStr).value(); @@ -65,14 +51,12 @@ pub fn __dir(input: pm1::TokenStream) -> pm1::TokenStream { .into() } -#[cfg(procmacro2_semver_exempt)] fn dir_debug(path: &str) -> TokenStream { quote! { ::embd::__dir_runtime(file!(), #path) } } -#[cfg(procmacro2_semver_exempt)] fn dir_release(input: TokenStream, path: &str) -> TokenStream { let neighbor = TokenStream::from(input).span().source_file().path(); @@ -95,7 +79,6 @@ fn dir_release(input: TokenStream, path: &str) -> TokenStream { } } -#[cfg(procmacro2_semver_exempt)] fn read_dir(directory: &Path) -> TokenVec { let mut entries = Vec::new(); diff --git a/embd/Cargo.toml b/embd/Cargo.toml index 232b77a..f30cb7a 100644 --- a/embd/Cargo.toml +++ b/embd/Cargo.toml @@ -8,10 +8,7 @@ categories = [ "filesystem" ] authors = [ "RGBCube" ] version = "0.1.4" edition = "2021" -include = [ "src/**/*.rs", "README.md" ] - -[package.metadata.docs.rs] -rustc-args = [ "--cfg", "procmacro2_semver_exempt" ] +include = [ "src/**/*.rs", "../README.md" ] [dependencies] embd-macros = "0.1" diff --git a/embd/README.md b/embd/README.md deleted file mode 100644 index 160a42c..0000000 --- a/embd/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# embd-rs - -A super simple file and directory embedding crate, -that loads files from the filesystem on debug mode, -allowing for quick edit-and-test cycles without compilation. - -It is also super efficient, and does not heap allocate when the -files are embedded on release mode by utilizing `std::borrow::Cow`. - -On release mode it falls back to `include_str!`, `include_bytes!` -and our own custom `include_dir!`-like implementation. - -## Usage - -Add this to your Cargo.toml: - -```toml -[dependencies] -embd = "0.1" -``` - -Then you can use this crate like so: - -```rs -let contents: Cow<'_, str> = embd::string!("path/to/file.txt"); -let bytes: Cow<'_, [u8]> = embd::bytes!("path/to/image.png"); - -let dir: embd::Dir = embd::dir!("path/to"); -let files: Vec = dir.flatten(); -``` - -Note that you will need to enable the `procmacro2_semver_exempt` cfg -option to use this crate, you can enable it like so, by putting this in -`.cargo/config.toml` in the project root: - -```toml -[build] -rustflags = [ "--cfg", "procmacro2_semver_exempt" ] -``` - -## To-Do - -- [ ] Hot reloading of files in debug mode. -- [ ] Don't depend on `procmacro2_semver_exempt`. - -## License - -``` -Copyright (c) 2023-present RGBCube - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -``` diff --git a/embd/src/lib.rs b/embd/src/lib.rs index 54dcace..16ec684 100644 --- a/embd/src/lib.rs +++ b/embd/src/lib.rs @@ -5,16 +5,6 @@ use std::{ path::Path, }; -#[cfg(not(procmacro2_semver_exempt))] -compile_error!( - r#"pass `--cfg procmacro2_semver_exempt` to rustc to compile embd or add this to your `.cargo/config.toml`: - -[build] -rustflags = [ "--cfg", "procmacro2_semver_exempt" ] - -"# -); - #[doc(hidden)] pub fn __string_runtime(neighbor: &str, path: &str) -> String { let file = Path::new(neighbor) @@ -34,7 +24,6 @@ pub fn __string_runtime(neighbor: &str, path: &str) -> String { /// let content: Cow<'static, str> = embd::string!("main.rs"); /// ``` #[macro_export] -#[cfg(procmacro2_semver_exempt)] macro_rules! string { ($path:literal) => {{ #[cfg(debug_assertions)] @@ -70,7 +59,6 @@ pub fn __bytes_runtime(neighbor: &str, path: &str) -> Vec { /// } /// ``` #[macro_export] -#[cfg(procmacro2_semver_exempt)] macro_rules! bytes { ($path:literal) => {{ #[cfg(debug_assertions)] @@ -232,5 +220,4 @@ pub fn __dir_runtime(neighbor: &str, path: &str) -> Dir { /// let content: embd::Dir = embd::dir!("../assets"); /// } /// ``` -#[cfg(procmacro2_semver_exempt)] pub use embd_macros::__dir as dir;