diff --git a/.idea/Rust-for-Arduboy.iml b/.idea/Rust-for-Arduboy.iml
index 54e6913..dc2ba17 100644
--- a/.idea/Rust-for-Arduboy.iml
+++ b/.idea/Rust-for-Arduboy.iml
@@ -32,6 +32,7 @@
+
diff --git a/Cargo.lock b/Cargo.lock
index a02629b..aa3a67a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -265,6 +265,13 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+[[package]]
+name = "test_game"
+version = "0.1.0"
+dependencies = [
+ "arduboy-rust",
+]
+
[[package]]
name = "tone"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 7a28d50..fd3721a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,3 +1,4 @@
+
[workspace]
-members = ["arduboy-rust", "Examples/Arduboy-Tutorials/eeprom", "Examples/Arduboy-Tutorials/eeprom_byte", "Examples/Arduboy-Tutorials/progmem", "Examples/Arduboy-Tutorials/tone", "Examples/Arduboy-Tutorials/serial", "Examples/Arduboy-Tutorials/demo2", "Examples/Arduboy-Tutorials/demo3", "Examples/Arduboy-Tutorials/demo4", "Examples/Arduboy-Tutorials/demo5", "Examples/Arduboy-Tutorials/demo6", "Examples/Arduboy-Tutorials/demo7", "Examples/Arduboy-Tutorials/demo9", "Examples/ArduboyFX/fxbasicexample", "Examples/ArduboyFX/fxchompies", "Examples/ArduboyFX/fxdrawballs", "Examples/ArduboyFX/fxdrawframes", "Examples/ArduboyFX/fxhelloworld", "Examples/ArduboyFX/fxloadgamestate", "Examples/drboy", "Examples/ardvoice", "Examples/rustacean", "Examples/snake", "Project/game"]
+members = ["arduboy-rust", "Examples/Arduboy-Tutorials/eeprom", "Examples/Arduboy-Tutorials/eeprom_byte", "Examples/Arduboy-Tutorials/progmem", "Examples/Arduboy-Tutorials/tone", "Examples/Arduboy-Tutorials/serial", "Examples/Arduboy-Tutorials/demo2", "Examples/Arduboy-Tutorials/demo3", "Examples/Arduboy-Tutorials/demo4", "Examples/Arduboy-Tutorials/demo5", "Examples/Arduboy-Tutorials/demo6", "Examples/Arduboy-Tutorials/demo7", "Examples/Arduboy-Tutorials/demo9", "Examples/ArduboyFX/fxbasicexample", "Examples/ArduboyFX/fxchompies", "Examples/ArduboyFX/fxdrawballs", "Examples/ArduboyFX/fxdrawframes", "Examples/ArduboyFX/fxhelloworld", "Examples/ArduboyFX/fxloadgamestate", "Examples/drboy", "Examples/ardvoice", "Examples/rustacean", "Examples/snake", "Project/game", "Project/test_game"]
resolver = "2"
\ No newline at end of file
diff --git a/arduboy-rust/src/hardware/buttons.rs b/arduboy-rust/src/hardware/buttons.rs
index 393b10b..ec2155a 100644
--- a/arduboy-rust/src/hardware/buttons.rs
+++ b/arduboy-rust/src/hardware/buttons.rs
@@ -44,30 +44,3 @@ pub const B_BUTTON: ButtonSet = B;
pub struct ButtonSet {
pub flag_set: u8,
}
-
-impl ButtonSet {
- pub fn pressed(&self) -> bool {
- unsafe { crate::libraries::arduboy2_library::binding::pressed(self.flag_set) }
- }
-
- pub fn just_pressed(&self) -> bool {
- unsafe { crate::libraries::arduboy2_library::binding::just_pressed(self.flag_set) }
- }
-
- pub fn just_released(&self) -> bool {
- unsafe { crate::libraries::arduboy2_library::binding::just_released(self.flag_set) }
- }
- pub fn not_pressed(&self) -> bool {
- unsafe { crate::libraries::arduboy2_library::binding::not_pressed(self.flag_set) }
- }
-}
-
-impl core::ops::BitOr for ButtonSet {
- type Output = Self;
-
- fn bitor(self, other: Self) -> Self {
- Self {
- flag_set: self.flag_set | other.flag_set,
- }
- }
-}
diff --git a/arduboy-rust/src/lib.rs b/arduboy-rust/src/lib.rs
index ed854c3..006f2c4 100644
--- a/arduboy-rust/src/lib.rs
+++ b/arduboy-rust/src/lib.rs
@@ -27,7 +27,8 @@
extern crate panic_halt;
pub mod hardware;
-mod libraries;
+#[doc(hidden)]
+pub mod libraries;
pub mod prelude;
#[doc(inline)]
diff --git a/arduboy-rust/src/libraries/arduboy2_library/arduboy2.rs b/arduboy-rust/src/libraries/arduboy2_library/arduboy2.rs
index f588295..e055a89 100644
--- a/arduboy-rust/src/libraries/arduboy2_library/arduboy2.rs
+++ b/arduboy-rust/src/libraries/arduboy2_library/arduboy2.rs
@@ -665,3 +665,30 @@ impl Arduboy2 {
unsafe { arduboy_exit_to_bootloader() }
}
}
+
+impl ButtonSet {
+ pub fn pressed(&self) -> bool {
+ unsafe { pressed(self.flag_set) }
+ }
+
+ pub fn just_pressed(&self) -> bool {
+ unsafe { just_pressed(self.flag_set) }
+ }
+
+ pub fn just_released(&self) -> bool {
+ unsafe { just_released(self.flag_set) }
+ }
+ pub fn not_pressed(&self) -> bool {
+ unsafe { not_pressed(self.flag_set) }
+ }
+}
+
+impl core::ops::BitOr for ButtonSet {
+ type Output = Self;
+
+ fn bitor(self, other: Self) -> Self {
+ Self {
+ flag_set: self.flag_set | other.flag_set,
+ }
+ }
+}
diff --git a/arduboy-rust/src/libraries/arduboy2_library/mod.rs b/arduboy-rust/src/libraries/arduboy2_library/mod.rs
index 4738d5d..6be9b79 100644
--- a/arduboy-rust/src/libraries/arduboy2_library/mod.rs
+++ b/arduboy-rust/src/libraries/arduboy2_library/mod.rs
@@ -4,7 +4,7 @@
#[doc(hidden)]
pub mod arduboy2;
#[doc(hidden)]
-pub mod binding;
+mod binding;
#[doc(hidden)]
pub mod print;
diff --git a/arduboy-rust/src/prelude.rs b/arduboy-rust/src/prelude.rs
index f8010dc..c9b84ab 100644
--- a/arduboy-rust/src/prelude.rs
+++ b/arduboy-rust/src/prelude.rs
@@ -9,7 +9,8 @@ pub use crate::hardware::buttons::*;
#[doc(inline)]
pub use crate::hardware::led::*;
pub use crate::heapless::{LinearMap, String, Vec};
-pub use crate::libraries::arduboy2_library::*;
+pub use crate::libraries::arduboy2_library::arduboy2::*;
+pub use crate::libraries::arduboy2_library::{print, sprites};
pub use crate::libraries::arduboy_tones_library::*;
pub use crate::libraries::arduboyfx_library::*;
pub use crate::libraries::arduino_system::arduino::*;