Use bilge rather than modular-bitfield (#430)

Thought I'd give bilge a go rather than modular bitfield after reading
this blog post:
https://hecatia-elegua.github.io/blog/no-more-bit-fiddling/

- [ ] Changelog updated / no changelog update needed
This commit is contained in:
Gwilym Inzani 2023-05-30 20:41:46 +01:00 committed by GitHub
commit da5aed83e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 384 additions and 308 deletions

View file

@ -19,7 +19,7 @@ agb_macros = { version = "0.15.0", path = "../agb-macros" }
agb_fixnum = { version = "0.15.0", path = "../agb-fixnum" } agb_fixnum = { version = "0.15.0", path = "../agb-fixnum" }
agb_hashmap = { version = "0.15.0", path = "../agb-hashmap" } agb_hashmap = { version = "0.15.0", path = "../agb-hashmap" }
bare-metal = "1" bare-metal = "1"
modular-bitfield = "0.11" bilge = "0.1"
rustc-hash = { version = "1", default-features = false } rustc-hash = { version = "1", default-features = false }
[package.metadata.docs.rs] [package.metadata.docs.rs]

View file

@ -1,7 +1,8 @@
use crate::memory_mapped::MemoryMapped; use crate::memory_mapped::MemoryMapped;
use bilge::prelude::*;
use bitflags::bitflags; use bitflags::bitflags;
use modular_bitfield::BitfieldSpecifier;
use video::Video; use video::Video;
use self::{ use self::{
@ -159,7 +160,8 @@ pub fn busy_wait_for_vblank() {
while VCOUNT.get() < 160 {} while VCOUNT.get() < 160 {}
} }
#[derive(BitfieldSpecifier, Clone, Copy, Debug)] #[bitsize(2)]
#[derive(FromBits, PartialEq, Eq, Clone, Copy, Debug)]
pub enum Priority { pub enum Priority {
P0 = 0, P0 = 0,
P1 = 1, P1 = 1,

View file

@ -1,4 +1,4 @@
use modular_bitfield::BitfieldSpecifier; use bilge::prelude::*;
use crate::display::Priority; use crate::display::Priority;
@ -17,7 +17,14 @@ pub struct Attributes {
impl Default for Attributes { impl Default for Attributes {
fn default() -> Self { fn default() -> Self {
Self { Self {
a0: ObjectAttribute0::from_bytes([0, 0b10]), a0: ObjectAttribute0::new(
0,
ObjectMode::Normal,
GraphicsMode::Normal,
false,
ColourMode::Four,
u2::new(1),
),
a1s: Default::default(), a1s: Default::default(),
a1a: Default::default(), a1a: Default::default(),
a2: Default::default(), a2: Default::default(),
@ -37,20 +44,12 @@ pub enum AffineMode {
impl Attributes { impl Attributes {
pub fn write(self, ptr: *mut u16) { pub fn write(self, ptr: *mut u16) {
let mode = self.a0.object_mode(); let mode = self.a0.object_mode();
unsafe { let attrs = match mode {
let attrs = core::mem::transmute::<_, [u16; 3]>(match mode { ObjectMode::Normal => [self.a0.into(), self.a1s.into(), self.a2.into()],
ObjectMode::Normal => [ _ => [self.a0.into(), self.a1a.into(), self.a2.into()],
self.a0.into_bytes(), };
self.a1s.into_bytes(),
self.a2.into_bytes(),
],
_ => [
self.a0.into_bytes(),
self.a1a.into_bytes(),
self.a2.into_bytes(),
],
});
unsafe {
ptr.add(0).write_volatile(attrs[0]); ptr.add(0).write_volatile(attrs[0]);
ptr.add(1).write_volatile(attrs[1]); ptr.add(1).write_volatile(attrs[1]);
ptr.add(2).write_volatile(attrs[2]); ptr.add(2).write_volatile(attrs[2]);
@ -89,8 +88,8 @@ impl Attributes {
} }
pub fn set_x(&mut self, x: u16) -> &mut Self { pub fn set_x(&mut self, x: u16) -> &mut Self {
self.a1a.set_x(x.rem_euclid(1 << 9)); self.a1a.set_x(u9::new(x.rem_euclid(1 << 9)));
self.a1s.set_x(x.rem_euclid(1 << 9)); self.a1s.set_x(u9::new(x.rem_euclid(1 << 9)));
self self
} }
@ -114,28 +113,29 @@ impl Attributes {
} }
pub fn set_palette(&mut self, palette_id: u16) -> &mut Self { pub fn set_palette(&mut self, palette_id: u16) -> &mut Self {
self.a2.set_palette_bank(palette_id as u8); self.a2.set_palette_bank(u4::new(palette_id as u8));
self self
} }
pub fn set_affine_matrix(&mut self, affine_matrix_id: u16) -> &mut Self { pub fn set_affine_matrix(&mut self, affine_matrix_id: u16) -> &mut Self {
self.a1a.set_affine_index(affine_matrix_id as u8); self.a1a.set_affine_index(u5::new(affine_matrix_id as u8));
self self
} }
pub fn set_sprite(&mut self, sprite_id: u16, shape: u16, size: u16) -> &mut Self { pub fn set_sprite(&mut self, sprite_id: u16, shape: u16, size: u16) -> &mut Self {
self.a2.set_tile_index(sprite_id); self.a2.set_tile_index(u10::new(sprite_id));
self.a1a.set_size(size as u8); self.a1a.set_size(u2::new(size as u8));
self.a1s.set_size(size as u8); self.a1s.set_size(u2::new(size as u8));
self.a0.set_shape(shape as u8); self.a0.set_shape(u2::new(shape as u8));
self self
} }
} }
#[derive(BitfieldSpecifier, Clone, Copy, Debug, PartialEq, Eq)] #[bitsize(2)]
#[derive(FromBits, Clone, Copy, Debug, PartialEq, Eq)]
enum ObjectMode { enum ObjectMode {
Normal, Normal,
Affine, Affine,
@ -143,15 +143,16 @@ enum ObjectMode {
AffineDouble, AffineDouble,
} }
#[derive(BitfieldSpecifier, Clone, Copy, Debug, PartialEq, Eq)] #[bitsize(2)]
#[bits = 2] #[derive(TryFromBits, Clone, Copy, Debug, PartialEq, Eq)]
enum GraphicsMode { enum GraphicsMode {
Normal, Normal,
AlphaBlending, AlphaBlending,
Window, Window,
} }
#[derive(BitfieldSpecifier, Clone, Copy, Debug, PartialEq, Eq)] #[bitsize(1)]
#[derive(FromBits, Clone, Copy, Debug, PartialEq, Eq)]
enum ColourMode { enum ColourMode {
Four, Four,
Eight, Eight,
@ -162,49 +163,44 @@ enum ColourMode {
#[allow(clippy::all)] #[allow(clippy::all)]
#[allow(clippy::map_unwrap_or)] #[allow(clippy::map_unwrap_or)]
mod attributes { mod attributes {
use modular_bitfield::{
bitfield,
specifiers::{B10, B2, B3, B4, B5, B8, B9},
};
use crate::display::Priority; use crate::display::Priority;
use super::*; use super::*;
#[bitfield]
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default)] #[bitsize(16)]
#[derive(TryFromBits, Clone, Copy, PartialEq, Eq, DebugBits, Default)]
pub(super) struct ObjectAttribute0 { pub(super) struct ObjectAttribute0 {
pub y: B8, pub y: u8,
pub object_mode: ObjectMode, pub object_mode: ObjectMode,
pub graphics_mode: GraphicsMode, pub graphics_mode: GraphicsMode,
pub mosaic: bool, pub mosaic: bool,
pub colour_mode: ColourMode, pub colour_mode: ColourMode,
pub shape: B2, pub shape: u2,
} }
#[bitfield] #[bitsize(16)]
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default)] #[derive(FromBits, Clone, Copy, PartialEq, Eq, DebugBits, Default)]
pub(super) struct ObjectAttribute1Standard { pub(super) struct ObjectAttribute1Standard {
pub x: B9, pub x: u9,
#[skip] __: u3,
__: B3,
pub horizontal_flip: bool, pub horizontal_flip: bool,
pub vertical_flip: bool, pub vertical_flip: bool,
pub size: B2, pub size: u2,
} }
#[bitfield] #[bitsize(16)]
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default)] #[derive(FromBits, Clone, Copy, PartialEq, Eq, DebugBits, Default)]
pub(super) struct ObjectAttribute1Affine { pub(super) struct ObjectAttribute1Affine {
pub x: B9, pub x: u9,
pub affine_index: B5, pub affine_index: u5,
pub size: B2, pub size: u2,
} }
#[bitfield] #[bitsize(16)]
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default)] #[derive(FromBits, Clone, Copy, PartialEq, Eq, DebugBits, Default)]
pub(super) struct ObjectAttribute2 { pub(super) struct ObjectAttribute2 {
pub tile_index: B10, pub tile_index: u10,
pub priority: Priority, pub priority: Priority,
pub palette_bank: B4, pub palette_bank: u4,
} }
} }

View file

@ -24,8 +24,8 @@ dependencies = [
"agb_macros", "agb_macros",
"agb_sound_converter", "agb_sound_converter",
"bare-metal", "bare-metal",
"bilge",
"bitflags 2.1.0", "bitflags 2.1.0",
"modular-bitfield",
"rustc-hash", "rustc-hash",
] ]
@ -52,7 +52,7 @@ dependencies = [
"image", "image",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -61,7 +61,7 @@ version = "0.15.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -71,7 +71,7 @@ dependencies = [
"hound", "hound",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -85,6 +85,12 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "arbitrary-int"
version = "1.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a49f791c7c8885e8221d31bc3a34455b0fd869810d8ddff608dbe08a598f9d9"
[[package]] [[package]]
name = "asefile" name = "asefile"
version = "0.3.5" version = "0.3.5"
@ -111,6 +117,28 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603"
[[package]]
name = "bilge"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c97ac126908e16a5347eb83d7439c6638e22f026f852a3565ac4d91b02a7762b"
dependencies = [
"arbitrary-int",
"bilge-impl",
]
[[package]]
name = "bilge-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e5c47aa8db64c22c688a5ca26abbfe537fda96c4da3fcc6d7abe8cc12bc40a"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -243,27 +271,6 @@ dependencies = [
"adler", "adler",
] ]
[[package]]
name = "modular-bitfield"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74"
dependencies = [
"modular-bitfield-impl",
"static_assertions",
]
[[package]]
name = "modular-bitfield-impl"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "nohash" name = "nohash"
version = "0.2.0" version = "0.2.0"
@ -336,6 +343,29 @@ dependencies = [
"agb", "agb",
] ]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.56" version = "1.0.56"
@ -360,23 +390,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.15" version = "2.0.15"

View file

@ -24,8 +24,8 @@ dependencies = [
"agb_macros", "agb_macros",
"agb_sound_converter", "agb_sound_converter",
"bare-metal", "bare-metal",
"bilge",
"bitflags 2.1.0", "bitflags 2.1.0",
"modular-bitfield",
"rustc-hash", "rustc-hash",
] ]
@ -52,7 +52,7 @@ dependencies = [
"image", "image",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -61,7 +61,7 @@ version = "0.15.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -71,7 +71,7 @@ dependencies = [
"hound", "hound",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -92,6 +92,12 @@ dependencies = [
"agb", "agb",
] ]
[[package]]
name = "arbitrary-int"
version = "1.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a49f791c7c8885e8221d31bc3a34455b0fd869810d8ddff608dbe08a598f9d9"
[[package]] [[package]]
name = "asefile" name = "asefile"
version = "0.3.5" version = "0.3.5"
@ -118,6 +124,28 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603"
[[package]]
name = "bilge"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c97ac126908e16a5347eb83d7439c6638e22f026f852a3565ac4d91b02a7762b"
dependencies = [
"arbitrary-int",
"bilge-impl",
]
[[package]]
name = "bilge-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e5c47aa8db64c22c688a5ca26abbfe537fda96c4da3fcc6d7abe8cc12bc40a"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -250,27 +278,6 @@ dependencies = [
"adler", "adler",
] ]
[[package]]
name = "modular-bitfield"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74"
dependencies = [
"modular-bitfield-impl",
"static_assertions",
]
[[package]]
name = "modular-bitfield-impl"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "nohash" name = "nohash"
version = "0.2.0" version = "0.2.0"
@ -336,6 +343,29 @@ dependencies = [
"miniz_oxide 0.3.7", "miniz_oxide 0.3.7",
] ]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.56" version = "1.0.56"
@ -360,23 +390,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.15" version = "2.0.15"

View file

@ -24,8 +24,8 @@ dependencies = [
"agb_macros", "agb_macros",
"agb_sound_converter", "agb_sound_converter",
"bare-metal", "bare-metal",
"bilge",
"bitflags 2.1.0", "bitflags 2.1.0",
"modular-bitfield",
"rustc-hash", "rustc-hash",
] ]
@ -52,7 +52,7 @@ dependencies = [
"image", "image",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -61,7 +61,7 @@ version = "0.15.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -71,7 +71,7 @@ dependencies = [
"hound", "hound",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -92,6 +92,12 @@ dependencies = [
"agb", "agb",
] ]
[[package]]
name = "arbitrary-int"
version = "1.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a49f791c7c8885e8221d31bc3a34455b0fd869810d8ddff608dbe08a598f9d9"
[[package]] [[package]]
name = "asefile" name = "asefile"
version = "0.3.5" version = "0.3.5"
@ -127,6 +133,28 @@ dependencies = [
"byteorder", "byteorder",
] ]
[[package]]
name = "bilge"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c97ac126908e16a5347eb83d7439c6638e22f026f852a3565ac4d91b02a7762b"
dependencies = [
"arbitrary-int",
"bilge-impl",
]
[[package]]
name = "bilge-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e5c47aa8db64c22c688a5ca26abbfe537fda96c4da3fcc6d7abe8cc12bc40a"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -310,27 +338,6 @@ dependencies = [
"adler", "adler",
] ]
[[package]]
name = "modular-bitfield"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74"
dependencies = [
"modular-bitfield-impl",
"static_assertions",
]
[[package]]
name = "modular-bitfield-impl"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "nohash" name = "nohash"
version = "0.2.0" version = "0.2.0"
@ -396,6 +403,29 @@ dependencies = [
"miniz_oxide 0.3.7", "miniz_oxide 0.3.7",
] ]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.56" version = "1.0.56"
@ -449,7 +479,7 @@ checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -463,23 +493,6 @@ dependencies = [
"serde", "serde",
] ]
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.15" version = "2.0.15"

View file

@ -24,8 +24,8 @@ dependencies = [
"agb_macros", "agb_macros",
"agb_sound_converter", "agb_sound_converter",
"bare-metal", "bare-metal",
"bilge",
"bitflags 2.1.0", "bitflags 2.1.0",
"modular-bitfield",
"rustc-hash", "rustc-hash",
] ]
@ -52,7 +52,7 @@ dependencies = [
"image", "image",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -61,7 +61,7 @@ version = "0.15.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -71,7 +71,7 @@ dependencies = [
"hound", "hound",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -85,6 +85,12 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "arbitrary-int"
version = "1.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a49f791c7c8885e8221d31bc3a34455b0fd869810d8ddff608dbe08a598f9d9"
[[package]] [[package]]
name = "asefile" name = "asefile"
version = "0.3.5" version = "0.3.5"
@ -111,6 +117,28 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603"
[[package]]
name = "bilge"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c97ac126908e16a5347eb83d7439c6638e22f026f852a3565ac4d91b02a7762b"
dependencies = [
"arbitrary-int",
"bilge-impl",
]
[[package]]
name = "bilge-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e5c47aa8db64c22c688a5ca26abbfe537fda96c4da3fcc6d7abe8cc12bc40a"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -250,27 +278,6 @@ dependencies = [
"adler", "adler",
] ]
[[package]]
name = "modular-bitfield"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74"
dependencies = [
"modular-bitfield-impl",
"static_assertions",
]
[[package]]
name = "modular-bitfield-impl"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "nohash" name = "nohash"
version = "0.2.0" version = "0.2.0"
@ -336,6 +343,29 @@ dependencies = [
"miniz_oxide 0.3.7", "miniz_oxide 0.3.7",
] ]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.56" version = "1.0.56"
@ -360,23 +390,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.15" version = "2.0.15"

View file

@ -24,8 +24,8 @@ dependencies = [
"agb_macros", "agb_macros",
"agb_sound_converter", "agb_sound_converter",
"bare-metal", "bare-metal",
"bilge",
"bitflags 2.1.0", "bitflags 2.1.0",
"modular-bitfield",
"rustc-hash", "rustc-hash",
] ]
@ -52,7 +52,7 @@ dependencies = [
"image", "image",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -61,7 +61,7 @@ version = "0.15.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -71,7 +71,7 @@ dependencies = [
"hound", "hound",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -85,6 +85,12 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "arbitrary-int"
version = "1.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a49f791c7c8885e8221d31bc3a34455b0fd869810d8ddff608dbe08a598f9d9"
[[package]] [[package]]
name = "asefile" name = "asefile"
version = "0.3.5" version = "0.3.5"
@ -111,6 +117,28 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603"
[[package]]
name = "bilge"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c97ac126908e16a5347eb83d7439c6638e22f026f852a3565ac4d91b02a7762b"
dependencies = [
"arbitrary-int",
"bilge-impl",
]
[[package]]
name = "bilge-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e5c47aa8db64c22c688a5ca26abbfe537fda96c4da3fcc6d7abe8cc12bc40a"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -249,27 +277,6 @@ dependencies = [
"adler", "adler",
] ]
[[package]]
name = "modular-bitfield"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74"
dependencies = [
"modular-bitfield-impl",
"static_assertions",
]
[[package]]
name = "modular-bitfield-impl"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "nohash" name = "nohash"
version = "0.2.0" version = "0.2.0"
@ -335,6 +342,29 @@ dependencies = [
"miniz_oxide 0.3.7", "miniz_oxide 0.3.7",
] ]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.56" version = "1.0.56"
@ -382,7 +412,7 @@ checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -396,23 +426,6 @@ dependencies = [
"serde", "serde",
] ]
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.15" version = "2.0.15"

View file

@ -24,8 +24,8 @@ dependencies = [
"agb_macros", "agb_macros",
"agb_sound_converter", "agb_sound_converter",
"bare-metal", "bare-metal",
"bilge",
"bitflags 2.1.0", "bitflags 2.1.0",
"modular-bitfield",
"rustc-hash", "rustc-hash",
] ]
@ -52,7 +52,7 @@ dependencies = [
"image", "image",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -61,7 +61,7 @@ version = "0.15.0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -71,7 +71,7 @@ dependencies = [
"hound", "hound",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.15", "syn",
] ]
[[package]] [[package]]
@ -85,6 +85,12 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "arbitrary-int"
version = "1.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a49f791c7c8885e8221d31bc3a34455b0fd869810d8ddff608dbe08a598f9d9"
[[package]] [[package]]
name = "asefile" name = "asefile"
version = "0.3.5" version = "0.3.5"
@ -120,6 +126,28 @@ dependencies = [
"byteorder", "byteorder",
] ]
[[package]]
name = "bilge"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c97ac126908e16a5347eb83d7439c6638e22f026f852a3565ac4d91b02a7762b"
dependencies = [
"arbitrary-int",
"bilge-impl",
]
[[package]]
name = "bilge-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e5c47aa8db64c22c688a5ca26abbfe537fda96c4da3fcc6d7abe8cc12bc40a"
dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -279,27 +307,6 @@ dependencies = [
"adler", "adler",
] ]
[[package]]
name = "modular-bitfield"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74"
dependencies = [
"modular-bitfield-impl",
"static_assertions",
]
[[package]]
name = "modular-bitfield-impl"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "nohash" name = "nohash"
version = "0.2.0" version = "0.2.0"
@ -365,6 +372,29 @@ dependencies = [
"miniz_oxide 0.3.7", "miniz_oxide 0.3.7",
] ]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2",
"quote",
"version_check",
]
[[package]]
name = "proc-macro-error-attr"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2",
"quote",
"version_check",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.56" version = "1.0.56"
@ -395,23 +425,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.15" version = "2.0.15"