diff options
| author | mat <git@matdoes.dev> | 2025-08-20 17:40:55 -1100 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-08-20 17:41:06 -1100 |
| commit | 01e0541b2d8d3acc30999e34992479b3d79fbdbd (patch) | |
| tree | 89f4297fc011255d66a566a91721e90e5658c724 /azalea-block/src/lib.rs | |
| parent | 3327f1e243253a7b51e38b79012c17767f47c99e (diff) | |
| download | azalea-drasl-01e0541b2d8d3acc30999e34992479b3d79fbdbd.tar.xz | |
generate better code in azalea-block
Diffstat (limited to 'azalea-block/src/lib.rs')
| -rw-r--r-- | azalea-block/src/lib.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/azalea-block/src/lib.rs b/azalea-block/src/lib.rs index 4f929cd3..ead63bef 100644 --- a/azalea-block/src/lib.rs +++ b/azalea-block/src/lib.rs @@ -38,3 +38,26 @@ pub trait Property { fn try_from_block_state(state: BlockState) -> Option<Self::Value>; } + +#[cfg(test)] +mod tests { + use crate::BlockTrait; + + #[test] + pub fn roundtrip_block_state() { + let block = crate::blocks::OakTrapdoor { + facing: crate::properties::FacingCardinal::East, + half: crate::properties::TopBottom::Bottom, + open: true, + powered: false, + waterlogged: false, + }; + let block_state = block.as_block_state(); + let block_from_state = Box::<dyn BlockTrait>::from(block_state); + let block_from_state = block_from_state + .downcast_ref::<crate::blocks::OakTrapdoor>() + .unwrap() + .clone(); + assert_eq!(block, block_from_state); + } +} |
