aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaspard Culis <79080828+GaspardCulis@users.noreply.github.com>2024-11-03 17:58:19 +0100
committerGitHub <noreply@github.com>2024-11-03 10:58:19 -0600
commit0774888a777a87367987f592314fc66d81c01313 (patch)
treefd27fcfc4d4816de381d8e62d022cd452860ed37
parent6b0fe5bf638079d535e70c3c91e78fe35a5d2a2f (diff)
downloadazalea-drasl-0774888a777a87367987f592314fc66d81c01313.tar.xz
feat(registry): Derive Serialize and Deserialize on registry types (#179)
-rw-r--r--Cargo.lock3
-rw-r--r--azalea-registry/Cargo.toml3
-rwxr-xr-xazalea-registry/azalea-registry-macros/src/lib.rs1
3 files changed, 5 insertions, 2 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 085e425d..5515af7d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
-version = 3
+version = 4
[[package]]
name = "addr2line"
@@ -519,6 +519,7 @@ dependencies = [
"azalea-buf",
"azalea-registry-macros",
"once_cell",
+ "serde",
"simdnbt",
]
diff --git a/azalea-registry/Cargo.toml b/azalea-registry/Cargo.toml
index 21515bb2..3e968b24 100644
--- a/azalea-registry/Cargo.toml
+++ b/azalea-registry/Cargo.toml
@@ -13,6 +13,7 @@ simdnbt = "0.6"
azalea-buf = { path = "../azalea-buf", version = "0.10.0" }
azalea-registry-macros = { path = "./azalea-registry-macros", version = "0.10.0" }
once_cell = "1.19.0"
+serde = { version = "^1.0", optional = true }
[features]
-serde = ["azalea-registry-macros/serde"]
+serde = ["azalea-registry-macros/serde", "dep:serde"]
default = ["serde"]
diff --git a/azalea-registry/azalea-registry-macros/src/lib.rs b/azalea-registry/azalea-registry-macros/src/lib.rs
index 460ff06a..50a9f199 100755
--- a/azalea-registry/azalea-registry-macros/src/lib.rs
+++ b/azalea-registry/azalea-registry-macros/src/lib.rs
@@ -76,6 +76,7 @@ pub fn registry(input: TokenStream) -> TokenStream {
generated.extend(quote! {
#(#attributes)*
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, azalea_buf::McBuf, simdnbt::ToNbtTag, simdnbt::FromNbtTag)]
+ #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
#[repr(u32)]
pub enum #name {
#enum_items