aboutsummaryrefslogtreecommitdiff
path: root/azalea-registry
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-09-05 11:44:48 -0500
committermat <github@matdoes.dev>2022-09-05 11:44:48 -0500
commitfcb5bdf04241082d08b1ecc083745d6d97af61a9 (patch)
treeb41a76923e299dc60802d676a319c85f9c76858c /azalea-registry
parent4301a2f2d4c711fd50a54cf065079c42b89a72f2 (diff)
downloadazalea-drasl-fcb5bdf04241082d08b1ecc083745d6d97af61a9.tar.xz
use az-registry in az-protocol
Diffstat (limited to 'azalea-registry')
-rw-r--r--azalea-registry/Cargo.toml1
-rw-r--r--azalea-registry/azalea-registry-macros/src/lib.rs14
2 files changed, 11 insertions, 4 deletions
diff --git a/azalea-registry/Cargo.toml b/azalea-registry/Cargo.toml
index c9a4ed02..cb199611 100644
--- a/azalea-registry/Cargo.toml
+++ b/azalea-registry/Cargo.toml
@@ -8,4 +8,5 @@ version = "0.1.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
+azalea-buf = {path = "../azalea-buf", version = "^0.1.0"}
azalea-registry-macros = {path = "./azalea-registry-macros", version = "^0.1.0"}
diff --git a/azalea-registry/azalea-registry-macros/src/lib.rs b/azalea-registry/azalea-registry-macros/src/lib.rs
index fef698f5..16d8608e 100644
--- a/azalea-registry/azalea-registry-macros/src/lib.rs
+++ b/azalea-registry/azalea-registry-macros/src/lib.rs
@@ -67,7 +67,7 @@ pub fn registry(input: TokenStream) -> TokenStream {
});
}
generated.extend(quote! {
- #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+ #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, azalea_buf::McBuf)]
#[repr(u32)]
pub enum #name {
#enum_items
@@ -75,12 +75,16 @@ pub fn registry(input: TokenStream) -> TokenStream {
});
let max_id = input.items.len() as u32;
+
+ let doc_0 = format!("Transmutes a u32 to a {}.", name);
+ let doc_1 = format!("The `id` should be at most {}.", max_id);
+
generated.extend(quote! {
impl #name {
- /// Transmutes a u32 to a #name.
+ #[doc = #doc_0]
///
/// # Safety
- /// The `id` should be at most #max_id.
+ #[doc = #doc_1]
#[inline]
pub unsafe fn from_u32_unchecked(id: u32) -> Self {
std::mem::transmute::<u32, #name>(id)
@@ -93,11 +97,13 @@ pub fn registry(input: TokenStream) -> TokenStream {
}
});
+ let doc_0 = format!("Safely transmutes a u32 to a {}.", name);
+
generated.extend(quote! {
impl TryFrom<u32> for #name {
type Error = ();
- /// Safely converts a state id to a block state.
+ #[doc = #doc_0]
fn try_from(id: u32) -> Result<Self, Self::Error> {
if Self::is_valid_id(id) {
Ok(unsafe { Self::from_u32_unchecked(id) })