diff --git a/.idea/Rust-for-Arduboy.iml b/.idea/Rust-for-Arduboy.iml index 0d58e43..127d46b 100644 --- a/.idea/Rust-for-Arduboy.iml +++ b/.idea/Rust-for-Arduboy.iml @@ -20,6 +20,12 @@ + + + + + + diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..bbaa75f --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/Examples/ArduboyFX/fxbasicexample/fxdata/fxdata-data.bin b/Examples/ArduboyFX/fxbasicexample/fxdata/fxdata-data.bin new file mode 100644 index 0000000..21d7ede Binary files /dev/null and b/Examples/ArduboyFX/fxbasicexample/fxdata/fxdata-data.bin differ diff --git a/Examples/ArduboyFX/fxbasicexample/fxdata/fxdata.h b/Examples/ArduboyFX/fxbasicexample/fxdata/fxdata.h index dcb45b2..1eab68f 100644 --- a/Examples/ArduboyFX/fxbasicexample/fxdata/fxdata.h +++ b/Examples/ArduboyFX/fxbasicexample/fxdata/fxdata.h @@ -1,6 +1,6 @@ #pragma once -/**** FX data header generated by fxdata-build.py tool version 1.16 ****/ +/**** FX data header generated by fxdata-build.py tool version 1.15 ****/ using uint24_t = __uint24; diff --git a/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata-data.bin b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata-data.bin new file mode 100644 index 0000000..cc51217 Binary files /dev/null and b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata-data.bin differ diff --git a/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.bin b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.bin index cc51217..45bafc6 100644 Binary files a/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.bin and b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.bin differ diff --git a/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.h b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.h index c864330..cc13f16 100644 --- a/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.h +++ b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.h @@ -1,6 +1,6 @@ #pragma once -/**** FX data header generated by fxdata-build.py tool version 1.07 ****/ +/**** FX data header generated by fxdata-build.py tool version 1.15 ****/ using uint24_t = __uint24; diff --git a/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.txt b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.txt index ac06bc5..0feb455 100644 --- a/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.txt +++ b/Examples/ArduboyFX/fxhelloworld/fxdata/fxdata.txt @@ -2,4 +2,4 @@ image_t arduboyFont = "arduboyFont_6x8.png" image_t maskedFont = "maskedFont_16x24.png" -string helloWorld = "Hello World! This example uses the FX::drawString() function to draw text from the FX flash chip." \ No newline at end of file +string helloWorld = 'Hello World! This example uses the FX::drawString() function to draw text from the FX flash chip.' \ No newline at end of file diff --git a/Examples/drboy/src/lib.rs b/Examples/drboy/src/lib.rs index a607629..4775645 100644 --- a/Examples/drboy/src/lib.rs +++ b/Examples/drboy/src/lib.rs @@ -7,6 +7,7 @@ use arduboy_rust::prelude::*; use arduboy_tones::tones_pitch::*; mod gameloop; + #[allow(dead_code)] pub const arduboy: Arduboy2 = Arduboy2::new(); pub const sound: ArduboyTones = ArduboyTones::new(); diff --git a/docs/doc/crates.js b/docs/doc/crates.js index cbb6e18..9f8122f 100644 --- a/docs/doc/crates.js +++ b/docs/doc/crates.js @@ -1 +1 @@ -window.ALL_CRATES = ["arduboy_rust","ardvoice","atomic_polyfill","byteorder","critical_section","demo2","demo3","demo4","demo5","demo6","demo7","demo9","drboy","eeprom","eeprom_byte","game","hash32","heapless","panic_halt","progmem","rustacean","serial","snake","stable_deref_trait","tone"]; \ No newline at end of file +window.ALL_CRATES = ["arduboy_rust","ardvoice","atomic_polyfill","byteorder","critical_section","demo2","demo3","demo4","demo5","demo6","demo7","demo9","drboy","eeprom","eeprom_byte","fxbasicexample","fxchompies","fxdrawballs","fxdrawframes","fxhelloworld","fxloadgamestate","game","hash32","heapless","panic_halt","progmem","rustacean","serial","snake","stable_deref_trait","tone"]; \ No newline at end of file diff --git a/docs/doc/fxbasicexample/all.html b/docs/doc/fxbasicexample/all.html new file mode 100644 index 0000000..9acd400 --- /dev/null +++ b/docs/doc/fxbasicexample/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Functions

\ No newline at end of file diff --git a/docs/doc/fxbasicexample/fn.loop_.html b/docs/doc/fxbasicexample/fn.loop_.html new file mode 100644 index 0000000..cb1fd8f --- /dev/null +++ b/docs/doc/fxbasicexample/fn.loop_.html @@ -0,0 +1,3 @@ +loop_ in fxbasicexample - Rust

Function fxbasicexample::loop_

source ·
#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_()
\ No newline at end of file diff --git a/docs/doc/fxbasicexample/fn.setup.html b/docs/doc/fxbasicexample/fn.setup.html new file mode 100644 index 0000000..2c542d1 --- /dev/null +++ b/docs/doc/fxbasicexample/fn.setup.html @@ -0,0 +1,2 @@ +setup in fxbasicexample - Rust

Function fxbasicexample::setup

source ·
#[no_mangle]
+pub unsafe extern "C" fn setup()
\ No newline at end of file diff --git a/docs/doc/fxbasicexample/index.html b/docs/doc/fxbasicexample/index.html new file mode 100644 index 0000000..e64c502 --- /dev/null +++ b/docs/doc/fxbasicexample/index.html @@ -0,0 +1 @@ +fxbasicexample - Rust
\ No newline at end of file diff --git a/docs/doc/fxbasicexample/sidebar-items.js b/docs/doc/fxbasicexample/sidebar-items.js new file mode 100644 index 0000000..3985f32 --- /dev/null +++ b/docs/doc/fxbasicexample/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["loop_","setup"]}; \ No newline at end of file diff --git a/docs/doc/fxchompies/all.html b/docs/doc/fxchompies/all.html new file mode 100644 index 0000000..6a403c1 --- /dev/null +++ b/docs/doc/fxchompies/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Functions

\ No newline at end of file diff --git a/docs/doc/fxchompies/fn.loop_.html b/docs/doc/fxchompies/fn.loop_.html new file mode 100644 index 0000000..0ce6790 --- /dev/null +++ b/docs/doc/fxchompies/fn.loop_.html @@ -0,0 +1,3 @@ +loop_ in fxchompies - Rust

Function fxchompies::loop_

source ·
#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_()
\ No newline at end of file diff --git a/docs/doc/fxchompies/fn.setup.html b/docs/doc/fxchompies/fn.setup.html new file mode 100644 index 0000000..f9685e3 --- /dev/null +++ b/docs/doc/fxchompies/fn.setup.html @@ -0,0 +1,2 @@ +setup in fxchompies - Rust

Function fxchompies::setup

source ·
#[no_mangle]
+pub unsafe extern "C" fn setup()
\ No newline at end of file diff --git a/docs/doc/fxchompies/index.html b/docs/doc/fxchompies/index.html new file mode 100644 index 0000000..6490737 --- /dev/null +++ b/docs/doc/fxchompies/index.html @@ -0,0 +1 @@ +fxchompies - Rust
\ No newline at end of file diff --git a/docs/doc/fxchompies/sidebar-items.js b/docs/doc/fxchompies/sidebar-items.js new file mode 100644 index 0000000..3985f32 --- /dev/null +++ b/docs/doc/fxchompies/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["loop_","setup"]}; \ No newline at end of file diff --git a/docs/doc/fxdrawballs/all.html b/docs/doc/fxdrawballs/all.html new file mode 100644 index 0000000..59b5829 --- /dev/null +++ b/docs/doc/fxdrawballs/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Functions

\ No newline at end of file diff --git a/docs/doc/fxdrawballs/fn.loop_.html b/docs/doc/fxdrawballs/fn.loop_.html new file mode 100644 index 0000000..0299e74 --- /dev/null +++ b/docs/doc/fxdrawballs/fn.loop_.html @@ -0,0 +1,3 @@ +loop_ in fxdrawballs - Rust

Function fxdrawballs::loop_

source ·
#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_()
\ No newline at end of file diff --git a/docs/doc/fxdrawballs/fn.setup.html b/docs/doc/fxdrawballs/fn.setup.html new file mode 100644 index 0000000..25a3b37 --- /dev/null +++ b/docs/doc/fxdrawballs/fn.setup.html @@ -0,0 +1,2 @@ +setup in fxdrawballs - Rust

Function fxdrawballs::setup

source ·
#[no_mangle]
+pub unsafe extern "C" fn setup()
\ No newline at end of file diff --git a/docs/doc/fxdrawballs/index.html b/docs/doc/fxdrawballs/index.html new file mode 100644 index 0000000..c1b4469 --- /dev/null +++ b/docs/doc/fxdrawballs/index.html @@ -0,0 +1 @@ +fxdrawballs - Rust
\ No newline at end of file diff --git a/docs/doc/fxdrawballs/sidebar-items.js b/docs/doc/fxdrawballs/sidebar-items.js new file mode 100644 index 0000000..3985f32 --- /dev/null +++ b/docs/doc/fxdrawballs/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["loop_","setup"]}; \ No newline at end of file diff --git a/docs/doc/fxdrawframes/all.html b/docs/doc/fxdrawframes/all.html new file mode 100644 index 0000000..6466f47 --- /dev/null +++ b/docs/doc/fxdrawframes/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Functions

\ No newline at end of file diff --git a/docs/doc/fxdrawframes/fn.loop_.html b/docs/doc/fxdrawframes/fn.loop_.html new file mode 100644 index 0000000..d339e79 --- /dev/null +++ b/docs/doc/fxdrawframes/fn.loop_.html @@ -0,0 +1,3 @@ +loop_ in fxdrawframes - Rust

Function fxdrawframes::loop_

source ·
#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_()
\ No newline at end of file diff --git a/docs/doc/fxdrawframes/fn.setup.html b/docs/doc/fxdrawframes/fn.setup.html new file mode 100644 index 0000000..1638d8a --- /dev/null +++ b/docs/doc/fxdrawframes/fn.setup.html @@ -0,0 +1,2 @@ +setup in fxdrawframes - Rust

Function fxdrawframes::setup

source ·
#[no_mangle]
+pub unsafe extern "C" fn setup()
\ No newline at end of file diff --git a/docs/doc/fxdrawframes/index.html b/docs/doc/fxdrawframes/index.html new file mode 100644 index 0000000..44da06a --- /dev/null +++ b/docs/doc/fxdrawframes/index.html @@ -0,0 +1 @@ +fxdrawframes - Rust
\ No newline at end of file diff --git a/docs/doc/fxdrawframes/sidebar-items.js b/docs/doc/fxdrawframes/sidebar-items.js new file mode 100644 index 0000000..3985f32 --- /dev/null +++ b/docs/doc/fxdrawframes/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["loop_","setup"]}; \ No newline at end of file diff --git a/docs/doc/fxhelloworld/all.html b/docs/doc/fxhelloworld/all.html new file mode 100644 index 0000000..a162bbf --- /dev/null +++ b/docs/doc/fxhelloworld/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Functions

\ No newline at end of file diff --git a/docs/doc/fxhelloworld/fn.loop_.html b/docs/doc/fxhelloworld/fn.loop_.html new file mode 100644 index 0000000..2ed936d --- /dev/null +++ b/docs/doc/fxhelloworld/fn.loop_.html @@ -0,0 +1,3 @@ +loop_ in fxhelloworld - Rust

Function fxhelloworld::loop_

source ·
#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_()
\ No newline at end of file diff --git a/docs/doc/fxhelloworld/fn.setup.html b/docs/doc/fxhelloworld/fn.setup.html new file mode 100644 index 0000000..2c67b4f --- /dev/null +++ b/docs/doc/fxhelloworld/fn.setup.html @@ -0,0 +1,2 @@ +setup in fxhelloworld - Rust

Function fxhelloworld::setup

source ·
#[no_mangle]
+pub unsafe extern "C" fn setup()
\ No newline at end of file diff --git a/docs/doc/fxhelloworld/index.html b/docs/doc/fxhelloworld/index.html new file mode 100644 index 0000000..d12b0e9 --- /dev/null +++ b/docs/doc/fxhelloworld/index.html @@ -0,0 +1 @@ +fxhelloworld - Rust
\ No newline at end of file diff --git a/docs/doc/fxhelloworld/sidebar-items.js b/docs/doc/fxhelloworld/sidebar-items.js new file mode 100644 index 0000000..3985f32 --- /dev/null +++ b/docs/doc/fxhelloworld/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["loop_","setup"]}; \ No newline at end of file diff --git a/docs/doc/fxloadgamestate/all.html b/docs/doc/fxloadgamestate/all.html new file mode 100644 index 0000000..edcae81 --- /dev/null +++ b/docs/doc/fxloadgamestate/all.html @@ -0,0 +1 @@ +List of all items in this crate

List of all items

Functions

\ No newline at end of file diff --git a/docs/doc/fxloadgamestate/fn.loop_.html b/docs/doc/fxloadgamestate/fn.loop_.html new file mode 100644 index 0000000..3e60d42 --- /dev/null +++ b/docs/doc/fxloadgamestate/fn.loop_.html @@ -0,0 +1,3 @@ +loop_ in fxloadgamestate - Rust

Function fxloadgamestate::loop_

source ·
#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_()
\ No newline at end of file diff --git a/docs/doc/fxloadgamestate/fn.setup.html b/docs/doc/fxloadgamestate/fn.setup.html new file mode 100644 index 0000000..51b13c1 --- /dev/null +++ b/docs/doc/fxloadgamestate/fn.setup.html @@ -0,0 +1,2 @@ +setup in fxloadgamestate - Rust

Function fxloadgamestate::setup

source ·
#[no_mangle]
+pub unsafe extern "C" fn setup()
\ No newline at end of file diff --git a/docs/doc/fxloadgamestate/index.html b/docs/doc/fxloadgamestate/index.html new file mode 100644 index 0000000..f254639 --- /dev/null +++ b/docs/doc/fxloadgamestate/index.html @@ -0,0 +1 @@ +fxloadgamestate - Rust
\ No newline at end of file diff --git a/docs/doc/fxloadgamestate/sidebar-items.js b/docs/doc/fxloadgamestate/sidebar-items.js new file mode 100644 index 0000000..3985f32 --- /dev/null +++ b/docs/doc/fxloadgamestate/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":["loop_","setup"]}; \ No newline at end of file diff --git a/docs/doc/game/fn.loop_.html b/docs/doc/game/fn.loop_.html index 0248b98..1a0f28f 100644 --- a/docs/doc/game/fn.loop_.html +++ b/docs/doc/game/fn.loop_.html @@ -1,3 +1,3 @@ -loop_ in game - Rust

Function game::loop_

source ·
#[no_mangle]
+loop_ in game - Rust

Function game::loop_

source ·
#[no_mangle]
 #[export_name = "loop"]
 pub unsafe extern "C" fn loop_()
\ No newline at end of file diff --git a/docs/doc/game/fn.setup.html b/docs/doc/game/fn.setup.html index 154cba9..d271fd9 100644 --- a/docs/doc/game/fn.setup.html +++ b/docs/doc/game/fn.setup.html @@ -1,2 +1,2 @@ -setup in game - Rust

Function game::setup

source ·
#[no_mangle]
+setup in game - Rust

Function game::setup

source ·
#[no_mangle]
 pub unsafe extern "C" fn setup()
\ No newline at end of file diff --git a/docs/doc/game/index.html b/docs/doc/game/index.html index e0206fc..f13eb0e 100644 --- a/docs/doc/game/index.html +++ b/docs/doc/game/index.html @@ -1 +1 @@ -game - Rust

Crate game

source ·

Functions

\ No newline at end of file +game - Rust

Crate game

source ·

Functions

\ No newline at end of file diff --git a/docs/doc/help.html b/docs/doc/help.html index 7663d07..97addff 100644 --- a/docs/doc/help.html +++ b/docs/doc/help.html @@ -1 +1 @@ -Rustdoc help

Rustdoc help

Back
\ No newline at end of file +Rustdoc help

Rustdoc help

Back
\ No newline at end of file diff --git a/docs/doc/search-index.js b/docs/doc/search-index.js index 859056d..adc517b 100644 --- a/docs/doc/search-index.js +++ b/docs/doc/search-index.js @@ -14,6 +14,12 @@ var searchIndex = JSON.parse('{\ "drboy":{"doc":"","t":"DNENDNDNNMMRMMMMLLLLLLLLLMHHHLLLLLLLMMMMLLLLMMFLHHHHHHMMMMMHFRMMHLLLLLLLLLLLLLH","n":["Enemy","GameLoop","GameMode","Losescreen","Player","Reset","Scoreboard","Scoreboard","Titlescreen","active","active","arduboy","bitmap","bitmap","bitmap_frame","bitmap_frame","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_score","counter","eeprom","enemies","enemy_count","fmt","fmt","fmt","from","from","from","from","gamemode","gameover_height","immortal","immortal_frame_count","into","into","into","into","level","live","loop_","move_down","overlay_1heart","overlay_2hearts","overlay_3hearts","overlay_score","p","player","player1","player2","player3","rect","rect","scorebord","setup","sound","speed","speed_change","titlescreen","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","update_score","vec_enemies"],"q":[[0,"drboy"]],"d":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,8,0,8,0,8,0,8,8,4,7,0,4,7,4,7,1,4,7,8,1,4,7,8,1,7,0,0,0,4,7,8,1,4,7,8,7,7,7,7,1,4,7,8,7,7,0,4,0,0,0,0,0,0,1,1,1,4,7,0,0,0,7,7,0,1,4,7,8,1,4,7,8,1,4,7,8,1,0],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[1,2],3],0,0,0,0,[[4,5],6],[[7,5],6],[[8,5],6],[[]],[[]],[[]],[[]],0,0,0,0,[[]],[[]],[[]],[[]],0,0,[[]],[4],0,0,0,0,0,0,0,0,0,0,0,0,[[]],0,0,0,0,[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],10],[[],10],[[],10],[[],10],[[1,2,11]],0],"c":[],"p":[[3,"Scoreboard"],[15,"u16"],[15,"u8"],[3,"Enemy"],[3,"Formatter"],[6,"Result"],[3,"Player"],[4,"GameMode"],[4,"Result"],[3,"TypeId"],[3,"EEPROM"]]},\ "eeprom":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"eeprom"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ "eeprom_byte":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"eeprom_byte"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ +"fxbasicexample":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"fxbasicexample"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ +"fxchompies":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"fxchompies"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ +"fxdrawballs":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"fxdrawballs"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ +"fxdrawframes":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"fxdrawframes"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ +"fxhelloworld":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"fxhelloworld"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ +"fxloadgamestate":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"fxloadgamestate"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ "game":{"doc":"","t":"FF","n":["loop_","setup"],"q":[[0,"game"]],"d":["",""],"i":[0,0],"f":[[[]],[[]]],"c":[],"p":[]},\ "hash32":{"doc":"32-bit hashing machinery","t":"IDDIIQDLLLLLLKLLLLLLKLLLLLLKLLLLLLLLLLLLLLKLL","n":["BuildHasher","BuildHasherDefault","FnvHasher","Hash","Hasher","Hasher","Murmur3Hasher","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","build_hasher","build_hasher","clone","default","default","default","eq","finish","finish","finish","fmt","from","from","from","hash","hash_slice","into","into","into","new","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","write","write","write"],"q":[[0,"hash32"]],"d":["See core::hash::BuildHasher for details","See core::hash::BuildHasherDefault for details","32-bit Fowler-Noll-Vo hasher","See core::hash::Hash for details","See core::hash::Hasher for details","See core::hash::BuildHasher::Hasher","32-bit MurmurHash3 hasher","","","","","","","See core::hash::BuildHasher.build_hasher","","","","","","","See core::hash::Hasher.finish","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Feeds this value into the given Hasher.","Feeds a slice of this type into the given Hasher.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","const constructor","","","","","","","","","","See core::hash::Hasher.write","",""],"i":[0,0,0,0,0,15,0,4,5,3,4,5,3,15,3,3,4,5,3,3,2,4,5,3,4,5,3,16,16,4,5,3,3,4,5,3,4,5,3,4,5,3,2,4,5],"f":[0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[3,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]]],[[3,[[0,[1,2]]]]]],[[],4],[[],5],[[],[[3,[[0,[1,2]]]]]],[[[3,[[0,[1,2]]]],[3,[[0,[1,2]]]]],6],[[],7],[4,7],[5,7],[[[3,[[0,[1,2]]]],8],9],[[]],[[]],[[]],[2],[[[11,[10]],2]],[[]],[[]],[[]],[[],3],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],13],[[],13],[[],13],[[[11,[14]]]],[[4,[11,[14]]]],[[5,[11,[14]]]]],"c":[],"p":[[8,"Default"],[8,"Hasher"],[3,"BuildHasherDefault"],[3,"FnvHasher"],[3,"Murmur3Hasher"],[15,"bool"],[15,"u32"],[3,"Formatter"],[6,"Result"],[8,"Sized"],[15,"slice"],[4,"Result"],[3,"TypeId"],[15,"u8"],[8,"BuildHasher"],[8,"Hash"]]},\ "heapless":{"doc":"static friendly data structures that don’t require …","t":"CCDEGGDDDDNDDCDNDDLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDIEEDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDIDDDDDDDILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["BinaryHeap","Bucket","Deque","Entry","FnvIndexMap","FnvIndexSet","HistoryBuffer","IndexMap","IndexSet","LinearMap","Occupied","OccupiedEntry","OldestOrdered","Pos","String","Vacant","VacantEntry","Vec","as_mut","as_mut","as_mut_ptr","as_mut_slices","as_mut_str","as_mut_vec","as_ptr","as_ref","as_ref","as_ref","as_ref","as_ref","as_slice","as_slice","as_slices","as_str","back","back_mut","binary_heap","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capacity","capacity","capacity","capacity","capacity","capacity","capacity","clear","clear","clear","clear","clear","clear","clear","clear_with","clone","clone","clone","clone","clone","clone","clone","cmp","cmp","contains","contains_key","contains_key","default","default","default","default","default","default","default","deref","deref","deref","deref_mut","deref_mut","difference","drop","drop","drop","drop","ends_with","entry","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","extend","extend","extend","extend","extend","extend","extend","extend","extend","extend_from_slice","extend_from_slice","first","first","first_mut","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_iter","from_slice","from_str","front","front_mut","get","get","get","get_mut","get_mut","get_mut","hash","hash","hash","hash","index","index","index_mut","index_mut","insert","insert","insert","insert","insert","insert","intersection","into","into","into","into","into","into","into","into","into","into","into","into_array","into_bytes","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_iter","into_key","into_mut","is_disjoint","is_empty","is_empty","is_empty","is_empty","is_empty","is_full","is_full","is_subset","is_superset","iter","iter","iter","iter","iter_mut","iter_mut","iter_mut","key","key","keys","keys","last","last","last_mut","len","len","len","len","len","ne","ne","ne","new","new","new","new","new","new","new","new_with","next","oldest_ordered","partial_cmp","partial_cmp","pop","pop","pop_back","pop_back_unchecked","pop_front","pop_front_unchecked","pop_unchecked","push","push","push_back","push_back_unchecked","push_front","push_front_unchecked","push_str","push_unchecked","recent","remove","remove","remove","remove","remove","remove_entry","resize","resize_default","retain","retain_mut","set_len","sorted_linked_list","starts_with","swap_remove","swap_remove","swap_remove_unchecked","symmetric_difference","truncate","truncate","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","values","values","values_mut","values_mut","write","write_char","write_str","write_str","BinaryHeap","Kind","Max","Min","PeekMut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","capacity","clear","clone","default","deref","deref_mut","drop","fmt","from","from","from","from","into","into","into","into","into_iter","into_vec","is_empty","iter","iter_mut","len","new","peek","peek_mut","pop","pop","pop_unchecked","push","push_unchecked","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","FindMut","Iter","Kind","LinkedIndexU16","LinkedIndexU8","LinkedIndexUsize","Max","Min","Node","SortedLinkedList","SortedLinkedListIndex","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","cmp","cmp","cmp","deref","deref_mut","drop","drop","eq","eq","eq","find_mut","finish","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into_iter","is_empty","is_full","iter","new_u16","new_u8","new_usize","next","partial_cmp","partial_cmp","partial_cmp","peek","pop","pop","pop_unchecked","push","push_unchecked","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"heapless"],[340,"heapless::binary_heap"],[395,"heapless::sorted_linked_list"]],"d":["","","A fixed capacity double-ended queue.","A view into an entry in the map","A heapless::IndexMap using the default FNV hasher","A heapless::IndexSet using the default FNV hasher. A list …","A “history buffer”, similar to a write-only ring …","Fixed capacity IndexMap","Fixed capacity IndexSet.","A fixed capacity map / dictionary that performs lookups …","The entry corresponding to the key K exists in the map","An occupied entry which can be manipulated","An iterator on the underlying buffer ordered from oldest …","","A fixed capacity String","The entry corresponding to the key K does not exist in the …","A view into an empty slot in the underlying map","A fixed capacity Vec","","","Returns a raw pointer to the vector’s buffer, which may …","Returns a pair of mutable slices which contain, in order, …","Converts a String into a mutable string slice.","Returns a mutable reference to the contents of this String.","Returns a raw pointer to the vector’s buffer.","","","","","","Returns the array slice backing the buffer, without …","Extracts a slice containing the entire vector.","Returns a pair of slices which contain, in order, the …","Extracts a string slice containing the entire string.","Provides a reference to the back element, or None if the …","Provides a mutable reference to the back element, or None …","A priority queue implemented with a binary heap.","","","","","","","","","","","","","","","","","","","","","","","Returns the maximum number of elements the deque can hold.","Returns the capacity of the buffer, which is the length of …","Returns the number of elements the map can hold","Returns the number of elements the set can hold","Returns the number of elements that the map can hold","Returns the maximum number of elements the String can hold","Returns the maximum number of elements the vector can hold.","Clears the deque, removing all values.","Clears the buffer, replacing every element with the …","Remove all key-value pairs in the map, while preserving …","Clears the set, removing all values.","Clears the map, removing all key-value pairs","Truncates this String, removing all contents.","Clears the vector, removing all values.","Clears the buffer, replacing every element with the given …","","","","","","","","","","Returns true if the set contains a value.","Returns true if the map contains a value for the specified …","Returns true if the map contains a value for the specified …","","","","","","","","","","","","","Visits the values representing the difference, i.e. the …","","","","","Returns true if needle is a suffix of the Vec.","Returns an entry for the corresponding key","","","","","","","","","","","","","","","","","","","Extends the vec from an iterator.","","","Clones and writes all elements in a slice to the buffer.","Clones and appends all elements in a slice to the Vec.","Get the first key-value pair","Get the first value","Get the first key-value pair, with mutable access to the …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Constructs a new vector with a fixed capacity of N and …","","Provides a reference to the front element, or None if the …","Provides a mutable reference to the front element, or None …","Gets a reference to the value associated with this entry","Returns a reference to the value corresponding to the key.","Returns a reference to the value corresponding to the key","Gets a mutable reference to the value associated with this …","Returns a mutable reference to the value corresponding to …","Returns a mutable reference to the value corresponding to …","","","","","","","","","Overwrites the underlying map’s value with this entry’…","Inserts this entry into to underlying map, yields a …","Inserts a key-value pair into the map.","Adds a value to the set.","Inserts a key-value pair into the map.","Inserts an element at position index within the vector, …","Visits the values representing the intersection, i.e. the …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the contents of the vector as an array of length M …","Converts a String into a byte vector.","","","","","","","","","","","","","Consumes this entry to yield to key associated with it","Consumes this entry and yields a reference to the …","Returns true if self has no elements in common with other. …","Returns whether the deque is empty.","Returns true if the map contains no elements.","Returns true if the set contains no elements.","Returns true if the map contains no elements","Returns true if the vec is empty","Returns whether the deque is full (i.e. if …","Returns true if the vec is full","Returns true if the set is a subset of another, i.e. other …","Examples","Returns an iterator over the deque.","Return an iterator over the key-value pairs of the map, in …","Return an iterator over the values of the set, in their …","An iterator visiting all key-value pairs in arbitrary …","Returns an iterator that allows modifying each value.","Return an iterator over the key-value pairs of the map, in …","An iterator visiting all key-value pairs in arbitrary …","Gets a reference to the key that this entity corresponds to","Get the key associated with this entry","Return an iterator over the keys of the map, in their order","An iterator visiting all keys in arbitrary order","Get the last key-value pair","Get the last value","Get the last key-value pair, with mutable access to the …","Returns the number of elements currently in the deque.","Returns the current fill level of the buffer.","Return the number of key-value pairs in the map.","Returns the number of elements in the set.","Returns the number of elements in this map","","","","Constructs a new, empty deque with a fixed capacity of N","Constructs a new history buffer.","Creates an empty IndexMap.","Creates an empty IndexSet","Creates an empty LinearMap","Constructs a new, empty String with a fixed capacity of N …","Constructs a new, empty vector with a fixed capacity of N","Constructs a new history buffer, where every element is …","","Returns an iterator for iterating over the buffer from …","","","Removes the last character from the string buffer and …","Removes the last element from a vector and returns it, or …","Removes the item from the back of the deque and returns …","Removes an item from the back of the deque and returns it, …","Removes the item from the front of the deque and returns …","Removes an item from the front of the deque and returns …","Removes the last element from a vector and returns it","Appends the given char to the end of this String.","Appends an item to the back of the collection","Appends an item to the back of the deque","Appends an item to the back of the deque","Appends an item to the front of the deque","Appends an item to the front of the deque","Appends a given string slice onto the end of this String.","Appends an item to the back of the collection","Returns a reference to the most recently written value.","Removes this entry from the map and yields its value","Same as swap_remove","Removes a value from the set. Returns true if the value …","Removes a key from the map, returning the value at the key …","Removes and returns the element at position index within …","Removes this entry from the map and yields its …","Resizes the Vec in-place so that len is equal to new_len.","Resizes the Vec in-place so that len is equal to new_len.","Retains only the elements specified by the predicate.","Retains only the elements specified by the predicate, …","Forces the length of the vector to new_len.","A fixed sorted priority linked list, similar to BinaryHeap …","Returns true if needle is a prefix of the Vec.","Remove the key-value pair equivalent to key and return its …","Removes an element from the vector and returns it.","Removes an element from the vector and returns it.","Visits the values representing the symmetric difference, …","Shortens this String to the specified length.","Shortens the vector, keeping the first len elements and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Visits the values representing the union, i.e. all the …","Return an iterator over the values of the map, in their …","An iterator visiting all values in arbitrary order","Return an iterator over mutable references to the the …","An iterator visiting all values mutably in arbitrary order","Writes an element to the buffer, overwriting the oldest …","","","","A priority queue implemented with a binary heap.","The binary heap kind: min-heap or max-heap","Max-heap","Min-heap","Structure wrapping a mutable reference to the greatest …","","","","","","","","","Returns the capacity of the binary heap.","Drops all items from the binary heap.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Returns the underlying Vec<T,N>. Order is arbitrary and …","Checks if the binary heap is empty.","Returns an iterator visiting all values in the underlying …","Returns a mutable iterator visiting all values in the …","Returns the length of the binary heap.","Creates an empty BinaryHeap as a $K-heap.","Returns the top (greatest if max-heap, smallest if …","Returns a mutable reference to the greatest item in the …","Removes the top (greatest if max-heap, smallest if …","Removes the peeked value from the heap and returns it.","Removes the top (greatest if max-heap, smallest if …","Pushes an item onto the binary heap.","Pushes an item onto the binary heap without first checking …","","","","","","","","","","","","","Comes from SortedLinkedList::find_mut.","Iterator for the linked list.","The linked list kind: min-list or max-list","Index for the SortedLinkedList with specific backing …","Index for the SortedLinkedList with specific backing …","Index for the SortedLinkedList with specific backing …","Marker for Max sorted SortedLinkedList.","Marker for Min sorted SortedLinkedList.","A node in the SortedLinkedList.","The linked list.","Trait for defining an index for the linked list, never …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Find an element in the list that can be changed and …","This will resort the element into the correct position in …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Checks if the linked list is empty.","Checks if the linked list is full.","Get an iterator over the sorted list.","Create a new linked list.","Create a new linked list.","Create a new linked list.","","","","","Peek at the first element.","Pops the first element in the list.","This will pop the element from the list.","Pop an element from the list without checking so the list …","Pushes an element to the linked list and sorts it into …","Pushes a value onto the list without checking if the list …","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,26,0,0,1,1,1,3,4,4,1,7,4,4,1,1,7,1,3,4,3,3,0,3,7,26,40,44,13,14,15,4,1,18,3,7,26,40,44,13,14,15,4,1,18,3,7,13,14,15,4,1,3,7,13,14,15,4,1,7,3,13,14,15,4,1,18,4,1,14,13,15,3,7,13,14,15,4,1,7,4,1,4,1,14,3,7,15,1,1,13,13,14,15,4,4,4,1,1,1,1,1,1,7,7,13,13,14,14,1,1,1,7,1,13,14,13,3,7,13,14,15,4,4,1,3,7,26,40,44,13,14,15,4,4,4,4,4,4,4,4,4,4,1,18,13,14,15,4,4,4,1,1,4,3,3,40,13,15,40,13,15,4,4,1,1,13,15,13,15,40,44,13,14,15,1,14,3,7,26,40,44,13,14,15,4,1,18,1,4,3,3,3,13,13,13,14,15,1,1,1,18,44,40,14,3,13,14,15,1,3,1,14,14,3,13,14,15,3,13,15,40,44,13,15,13,14,13,3,7,13,14,15,4,4,4,3,7,13,14,15,4,1,7,18,7,4,1,4,1,3,3,3,3,1,4,1,3,3,3,3,4,1,7,40,13,14,15,1,40,1,1,1,1,1,0,1,13,1,1,14,4,1,3,7,26,40,44,13,14,15,4,1,1,18,3,7,26,40,44,13,14,15,4,1,18,3,7,26,40,44,13,14,15,4,1,18,14,13,15,13,15,7,4,4,1,0,0,0,0,0,65,66,53,54,65,66,53,54,53,53,53,53,54,54,54,53,65,66,53,54,65,66,53,54,53,53,53,53,53,53,53,53,53,53,54,53,53,53,65,66,53,54,65,66,53,54,65,66,53,54,0,0,0,0,0,0,0,0,0,0,0,67,68,69,63,64,62,57,58,59,67,68,69,63,64,62,57,58,59,57,58,59,57,58,59,62,62,63,62,57,58,59,63,62,63,57,58,59,67,68,69,63,64,62,57,58,59,67,68,69,63,64,62,57,58,59,64,63,63,63,63,63,63,64,57,58,59,63,63,62,63,63,63,67,68,69,63,64,62,57,58,59,67,68,69,63,64,62,57,58,59,67,68,69,63,64,62,57,58,59],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[1,2],[1,1],[1],[3],[4,5],[4,[[1,[6]]]],[1],[7,2],[4,[[2,[6]]]],[4,5],[1,1],[1,2],[7,2],[1,2],[3],[4,5],[3,8],[3,8],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[3,9],[7,9],[[[13,[[0,[10,11]],12]]],9],[[[14,[[0,[10,11]],12]]],9],[[[15,[10]]],9],[4,9],[1,9],[3],[7],[[[13,[[0,[10,11]],12]]]],[[[14,[[0,[10,11]],12]]]],[[[15,[10]]]],[4],[1],[[[7,[[0,[16,17]]]],[0,[16,17]]]],[[[3,[17]]],[[3,[17]]]],[[[13,[[0,[10,11,17]],17,17]]],[[13,[[0,[10,11,17]],17,17]]]],[[[14,[[0,[10,11,17]],17]]],[[14,[[0,[10,11,17]],17]]]],[[[15,[[0,[10,17]],17]]],[[15,[[0,[10,17]],17]]]],[4,4],[[[1,[17]]],[[1,[17]]]],[[[18,[17]]],[[18,[17]]]],[[4,4],19],[[[1,[20]],[1,[20]]],19],[[[14,[[22,[[0,[21,10,11]]]],[0,[10,11]],12]],[0,[21,10,11]]],23],[[[13,[[22,[[0,[21,10,11]]]],[0,[10,11]],12]],[0,[21,10,11]]],23],[[[15,[10]],10],23],[[],3],[[],7],[[],[[13,[[0,[10,11]],[0,[12,24]]]]]],[[],[[14,[[0,[10,11]],[0,[12,24]]]]]],[[],[[15,[10]]]],[[],4],[[],1],[7,2],[4,5],[1,2],[4,5],[1,2],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],[[0,[[0,[10,11]],12]]]],[3],[7],[15],[1],[[[1,[25]],[2,[25]]],23],[[[13,[[0,[10,11]],12]],[0,[10,11]]],[[26,[[0,[10,11]]]]]],[[[13,[[0,[10,11]],10,12]],[13,[[0,[10,11]],10,12]]],23],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],23],[[[15,[10,25]],[15,[10,25]]],23],[[4,5],23],[[4,4],23],[[4,5],23],[[[1,[25]],2],23],[[[1,[25]],2],23],[[[1,[25]],2],23],[[[1,[25]],27],23],[[[1,[25]],1],23],[[[1,[25]],27],23],[[7,28]],[[[7,[17]],28]],[[[13,[[0,[10,11,16]],16,12]],28]],[[[13,[[0,[10,11]],12]],28]],[[[14,[[0,[10,11,16]],12]],28]],[[[14,[[0,[10,11]],12]],28]],[[1,28]],[[[1,[16]],28]],[[1,28]],[[[7,[17]],[2,[17]]]],[[[1,[17]],[2,[17]]],29],[[[13,[[0,[10,11]],12]]],8],[[[14,[[0,[10,11]],12]]],[[8,[[0,[10,11]]]]]],[[[13,[[0,[10,11]],12]]],8],[[[3,[30]],31],32],[[[7,[30]],31],32],[[[13,[[0,[10,11,30]],30,12]],31],32],[[[14,[[0,[10,11,30]],12]],31],32],[[[15,[[0,[10,30]],30]],31],32],[[4,31],32],[[4,31],32],[[[1,[30]],31],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[33,4],[34,4],[5,4],[35,4],[6,4],[36,4],[37,4],[[]],[38,4],[39,4],[[]],[[]],[28,[[13,[[0,[10,11]],[0,[12,24]]]]]],[28,[[14,[[0,[10,11]],[0,[12,24]]]]]],[28,[[15,[10]]]],[28,4],[28,4],[28,4],[28,1],[[[2,[17]]],[[29,[[1,[17]]]]]],[5,[[29,[4]]]],[3,8],[3,8],[[[40,[[0,[10,11]]]]]],[[[13,[[22,[[0,[21,11,10]]]],[0,[10,11]],12]],[0,[21,11,10]]],8],[[[15,[[22,[[0,[10,21]]]],10]],[0,[10,21]]],8],[[[40,[[0,[10,11]]]]]],[[[13,[[22,[[0,[21,11,10]]]],[0,[10,11]],12]],[0,[21,11,10]]],8],[[[15,[[22,[[0,[10,21]]]],10]],[0,[10,21]]],8],[[4,41]],[[4,42]],[[[1,[43]],41]],[[[1,[11]],42]],[[[13,[[0,[10,11,[22,[[0,[21,10,11]]]]]],12]],[0,[21,10,11]]]],[[[15,[[0,[[22,[[0,[10,21]]]],10]]]],[0,[10,21]]]],[[[13,[[0,[10,11,[22,[[0,[21,10,11]]]]]],12]],[0,[21,10,11]]]],[[[15,[[0,[[22,[[0,[10,21]]]],10]]]],[0,[10,21]]]],[[[40,[[0,[10,11]]]]]],[[[44,[[0,[10,11]]]]],29],[[[13,[[0,[10,11]],12]],[0,[10,11]]],[[29,[8]]]],[[[14,[[0,[10,11]],12]],[0,[10,11]]],[[29,[23,[0,[10,11]]]]]],[[[15,[10]],10],[[29,[8]]]],[[1,9],29],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],[[0,[[0,[10,11]],12]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[29,[27,1]]]],[4,[[1,[6]]]],[3],[3],[3],[[[13,[[0,[10,11]],12]]]],[[[13,[[0,[10,11]],12]]]],[[[13,[[0,[10,11]],12]]]],[[[14,[[0,[10,11]],12]]]],[[[15,[10]]]],[1],[1],[1],[[]],[[[44,[[0,[10,11]]]]],[[0,[10,11]]]],[[[40,[[0,[10,11]]]]]],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],23],[3,23],[[[13,[[0,[10,11]],12]]],23],[[[14,[[0,[10,11]],12]]],23],[[[15,[10]]],23],[1,23],[3,23],[1,23],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],23],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],23],0,[[[13,[[0,[10,11]],12]]],[[0,[[0,[10,11]]]]]],[[[14,[[0,[10,11]],12]]],[[0,[[0,[10,11]]]]]],[[[15,[10]]],[[0,[10]]]],0,[[[13,[[0,[10,11]],12]]],[[0,[[0,[10,11]]]]]],[[[15,[10]]],[[0,[10]]]],[[[40,[[0,[10,11]]]]],[[0,[10,11]]]],[[[44,[[0,[10,11]]]]],[[0,[10,11]]]],[[[13,[[0,[10,11]],12]]],45],[[[15,[10]]],45],[[[13,[[0,[10,11]],12]]],8],[[[14,[[0,[10,11]],12]]],[[8,[[0,[10,11]]]]]],[[[13,[[0,[10,11]],12]]],8],[3,9],[7,9],[[[13,[[0,[10,11]],12]]],9],[[[14,[[0,[10,11]],12]]],9],[[[15,[10]]],9],[[4,4],23],[[4,5],23],[[4,5],23],[[],3],[[],7],[[],[[13,[46]]]],[[],[[14,[46]]]],[[],15],[[],4],[[],1],[[[0,[16,17]]],[[7,[[0,[16,17]]]]]],[18,8],[7,18],[[4,4],[[8,[19]]]],[[[1,[47]],[1,[47]]],[[8,[19]]]],[4,[[8,[48]]]],[1,8],[3,8],[3],[3,8],[3],[1],[[4,48],29],[1,29],[3,29],[3],[3,29],[3],[[4,5],29],[1],[7,8],[[[40,[[0,[10,11]]]]]],[[[13,[[22,[[0,[21,11,10]]]],[0,[10,11]],12]],[0,[21,11,10]]],8],[[[14,[[22,[[0,[21,10,11]]]],[0,[10,11]],12]],[0,[21,10,11]]],23],[[[15,[[22,[[0,[10,21]]]],10]],[0,[10,21]]],8],[[1,9]],[[[40,[[0,[10,11]]]]]],[[[1,[17]],9,17],29],[[[1,[[0,[17,24]]]],9],29],[[1,49]],[[1,49]],[[1,9]],0,[[[1,[25]],[2,[25]]],23],[[[13,[[22,[[0,[21,11,10]]]],[0,[10,11]],12]],[0,[21,11,10]]],8],[[1,9]],[[1,9]],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],45],[[4,9]],[[1,9]],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[[2,[17]]],[[29,[[1,[17]]]]]],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[[14,[[0,[10,11]],12]],[14,[[0,[10,11]],12]]],45],[[[13,[[0,[10,11]],12]]],45],[[[15,[10]]],45],[[[13,[[0,[10,11]],12]]],45],[[[15,[10]]],45],[7],[[4,48],[[29,[51]]]],[[4,5],[[29,[51]]]],[[[1,[6]],5],32],0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[53,[20,52]]],9],[[[53,[20,52]]]],[[[53,[[0,[20,17]],52]]],[[53,[[0,[20,17]],52]]]],[[],[[53,[20,52]]]],[[[54,[20,52]]],20],[[[54,[20,52]]],20],[[[54,[20,52]]]],[[[53,[[0,[20,30]],52]],31],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[53,[20,52]]]],[[[53,[20,52]]],[[1,[20]]]],[[[53,[20,52]]],23],[[[53,[20,52]]],[[55,[20]]]],[[[53,[20,52]]],[[56,[20]]]],[[[53,[20,52]]],9],[[],53],[[[53,[20,52]]],[[8,[20]]]],[[[53,[20,52]]],[[8,[[54,[20,52]]]]]],[[[53,[20,52]]],[[8,[20]]]],[[[54,[20,52]]],20],[[[53,[20,52]]],20],[[[53,[20,52]],20],[[29,[20]]]],[[[53,[20,52]],20]],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],50],[[],50],[[],50],[[],50],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[57,57],[58,58],[59,59],[[57,57],19],[[58,58],19],[[59,59],19],[[[62,[20,60,61]]]],[[[62,[20,60,61]]]],[[[63,[60]]]],[[[62,[20,60,61]]]],[[57,57],23],[[58,58],23],[[59,59],23],[[[63,[20,60,61]],49],[[8,[[62,[20,60,61]]]]]],[[[62,[20,60,61]]]],[[[63,[[0,[20,30]],60,61]],31],32],[[57,31],32],[[58,31],32],[[59,31],32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[63,[20,60,61]]],23],[[[63,[20,60,61]]],23],[[[63,[20,60,61]]],[[64,[20,60,61]]]],[[],[[63,[58]]]],[[],[[63,[57]]]],[[],[[63,[59]]]],[[[64,[20,60,61]]],8],[[57,57],[[8,[19]]]],[[58,58],[[8,[19]]]],[[59,59],[[8,[19]]]],[[[63,[20,60,61]]],[[8,[20]]]],[[[63,[20,60,61]]],[[29,[20]]]],[[[62,[20,60,61]]],20],[[[63,[20,60,61]]],20],[[[63,[20,60,61]],20],[[29,[20]]]],[[[63,[20,60,61]],20]],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],29],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50],[[],50]],"c":[],"p":[[3,"Vec"],[15,"slice"],[3,"Deque"],[3,"String"],[15,"str"],[15,"u8"],[3,"HistoryBuffer"],[4,"Option"],[15,"usize"],[8,"Eq"],[8,"Hash"],[8,"BuildHasher"],[3,"IndexMap"],[3,"IndexSet"],[3,"LinearMap"],[8,"Copy"],[8,"Clone"],[3,"OldestOrdered"],[4,"Ordering"],[8,"Ord"],[8,"Sized"],[8,"Borrow"],[15,"bool"],[8,"Default"],[8,"PartialEq"],[4,"Entry"],[15,"array"],[8,"IntoIterator"],[4,"Result"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[15,"i32"],[15,"u64"],[15,"u16"],[15,"u32"],[15,"i64"],[15,"i8"],[15,"i16"],[3,"OccupiedEntry"],[8,"Hasher"],[8,"Hasher"],[8,"Hash"],[3,"VacantEntry"],[8,"Iterator"],[3,"BuildHasherDefault"],[8,"PartialOrd"],[15,"char"],[8,"FnMut"],[3,"TypeId"],[3,"Error"],[8,"Kind"],[3,"BinaryHeap"],[3,"PeekMut"],[3,"Iter"],[3,"IterMut"],[3,"LinkedIndexU8"],[3,"LinkedIndexU16"],[3,"LinkedIndexUsize"],[8,"SortedLinkedListIndex"],[8,"Kind"],[3,"FindMut"],[3,"SortedLinkedList"],[3,"Iter"],[4,"Min"],[4,"Max"],[3,"Min"],[3,"Max"],[3,"Node"]]},\ diff --git a/docs/doc/settings.html b/docs/doc/settings.html index 869c598..d426141 100644 --- a/docs/doc/settings.html +++ b/docs/doc/settings.html @@ -1 +1 @@ -Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file +Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/docs/doc/src-files.js b/docs/doc/src-files.js index 3ed50f4..70ea1eb 100644 --- a/docs/doc/src-files.js +++ b/docs/doc/src-files.js @@ -14,6 +14,12 @@ var srcIndex = JSON.parse('{\ "drboy":["",[],["gameloop.rs","lib.rs"]],\ "eeprom":["",[],["lib.rs"]],\ "eeprom_byte":["",[],["lib.rs"]],\ +"fxbasicexample":["",[],["lib.rs"]],\ +"fxchompies":["",[],["lib.rs"]],\ +"fxdrawballs":["",[],["lib.rs"]],\ +"fxdrawframes":["",[],["lib.rs"]],\ +"fxhelloworld":["",[],["lib.rs"]],\ +"fxloadgamestate":["",[],["lib.rs"]],\ "game":["",[],["lib.rs"]],\ "hash32":["",[],["fnv.rs","lib.rs","murmur3.rs"]],\ "heapless":["",[],["binary_heap.rs","deque.rs","histbuf.rs","indexmap.rs","indexset.rs","lib.rs","linear_map.rs","sealed.rs","sorted_linked_list.rs","string.rs","vec.rs"]],\ diff --git a/docs/doc/src/fxbasicexample/lib.rs.html b/docs/doc/src/fxbasicexample/lib.rs.html new file mode 100644 index 0000000..d1c55fe --- /dev/null +++ b/docs/doc/src/fxbasicexample/lib.rs.html @@ -0,0 +1,41 @@ +lib.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
#![no_std]
+#![allow(non_upper_case_globals)]
+//Include the Arduboy Library
+//Initialize the arduboy object
+use arduboy_rust::prelude::*;
+const arduboy: Arduboy2 = Arduboy2::new();
+//The setup() function runs once when you turn your Arduboy on
+#[no_mangle]
+pub unsafe extern "C" fn setup() {
+    // put your setup code here, to run once:
+    arduboy.begin();
+    arduboy.clear();
+    arduboy.print(f!(b"Holmes is cool!\0"));
+    arduboy.display();
+}
+#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_() {
+    // put your main code here, to run repeatedly:
+}
+
\ No newline at end of file diff --git a/docs/doc/src/fxchompies/lib.rs.html b/docs/doc/src/fxchompies/lib.rs.html new file mode 100644 index 0000000..7d09081 --- /dev/null +++ b/docs/doc/src/fxchompies/lib.rs.html @@ -0,0 +1,41 @@ +lib.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
#![no_std]
+#![allow(non_upper_case_globals)]
+//Include the Arduboy Library
+//Initialize the arduboy object
+use arduboy_rust::prelude::*;
+const arduboy: Arduboy2 = Arduboy2::new();
+//The setup() function runs once when you turn your Arduboy on
+#[no_mangle]
+pub unsafe extern "C" fn setup() {
+    // put your setup code here, to run once:
+    arduboy.begin();
+    arduboy.clear();
+    arduboy.print(f!(b"Holmes is cool!\0"));
+    arduboy.display();
+}
+#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_() {
+    // put your main code here, to run repeatedly:
+}
+
\ No newline at end of file diff --git a/docs/doc/src/fxdrawballs/lib.rs.html b/docs/doc/src/fxdrawballs/lib.rs.html new file mode 100644 index 0000000..4bafac7 --- /dev/null +++ b/docs/doc/src/fxdrawballs/lib.rs.html @@ -0,0 +1,41 @@ +lib.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
#![no_std]
+#![allow(non_upper_case_globals)]
+//Include the Arduboy Library
+//Initialize the arduboy object
+use arduboy_rust::prelude::*;
+const arduboy: Arduboy2 = Arduboy2::new();
+//The setup() function runs once when you turn your Arduboy on
+#[no_mangle]
+pub unsafe extern "C" fn setup() {
+    // put your setup code here, to run once:
+    arduboy.begin();
+    arduboy.clear();
+    arduboy.print(f!(b"Holmes is cool!\0"));
+    arduboy.display();
+}
+#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_() {
+    // put your main code here, to run repeatedly:
+}
+
\ No newline at end of file diff --git a/docs/doc/src/fxdrawframes/lib.rs.html b/docs/doc/src/fxdrawframes/lib.rs.html new file mode 100644 index 0000000..f5a3cb9 --- /dev/null +++ b/docs/doc/src/fxdrawframes/lib.rs.html @@ -0,0 +1,41 @@ +lib.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
#![no_std]
+#![allow(non_upper_case_globals)]
+//Include the Arduboy Library
+//Initialize the arduboy object
+use arduboy_rust::prelude::*;
+const arduboy: Arduboy2 = Arduboy2::new();
+//The setup() function runs once when you turn your Arduboy on
+#[no_mangle]
+pub unsafe extern "C" fn setup() {
+    // put your setup code here, to run once:
+    arduboy.begin();
+    arduboy.clear();
+    arduboy.print(f!(b"Holmes is cool!\0"));
+    arduboy.display();
+}
+#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_() {
+    // put your main code here, to run repeatedly:
+}
+
\ No newline at end of file diff --git a/docs/doc/src/fxhelloworld/lib.rs.html b/docs/doc/src/fxhelloworld/lib.rs.html new file mode 100644 index 0000000..d018ed9 --- /dev/null +++ b/docs/doc/src/fxhelloworld/lib.rs.html @@ -0,0 +1,41 @@ +lib.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
#![no_std]
+#![allow(non_upper_case_globals)]
+//Include the Arduboy Library
+//Initialize the arduboy object
+use arduboy_rust::prelude::*;
+const arduboy: Arduboy2 = Arduboy2::new();
+//The setup() function runs once when you turn your Arduboy on
+#[no_mangle]
+pub unsafe extern "C" fn setup() {
+    // put your setup code here, to run once:
+    arduboy.begin();
+    arduboy.clear();
+    arduboy.print(f!(b"Holmes is cool!\0"));
+    arduboy.display();
+}
+#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_() {
+    // put your main code here, to run repeatedly:
+}
+
\ No newline at end of file diff --git a/docs/doc/src/fxloadgamestate/lib.rs.html b/docs/doc/src/fxloadgamestate/lib.rs.html new file mode 100644 index 0000000..848302b --- /dev/null +++ b/docs/doc/src/fxloadgamestate/lib.rs.html @@ -0,0 +1,41 @@ +lib.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
#![no_std]
+#![allow(non_upper_case_globals)]
+//Include the Arduboy Library
+//Initialize the arduboy object
+use arduboy_rust::prelude::*;
+const arduboy: Arduboy2 = Arduboy2::new();
+//The setup() function runs once when you turn your Arduboy on
+#[no_mangle]
+pub unsafe extern "C" fn setup() {
+    // put your setup code here, to run once:
+    arduboy.begin();
+    arduboy.clear();
+    arduboy.print(f!(b"Holmes is cool!\0"));
+    arduboy.display();
+}
+#[no_mangle]
+#[export_name = "loop"]
+pub unsafe extern "C" fn loop_() {
+    // put your main code here, to run repeatedly:
+}
+
\ No newline at end of file diff --git a/docs/doc/src/game/lib.rs.html b/docs/doc/src/game/lib.rs.html index e9e57e8..9ff0261 100644 --- a/docs/doc/src/game/lib.rs.html +++ b/docs/doc/src/game/lib.rs.html @@ -48,16 +48,11 @@ 48 49 50 -51 -52 -53 -54
#![no_std]
 #![allow(non_upper_case_globals)]
 
 //Include the Arduboy Library
-use arduboy_rust::arduboyfx::*;
-#[allow(unused_imports)]
+#[allow(unused_imports)]
 use arduboy_rust::prelude::*;
 
 #[allow(dead_code)]
@@ -66,12 +61,11 @@
 // Progmem data
 
 // dynamic ram variables
-const FX_DATA_PAGE: u16 = 0xfffe;
-const FX_DATA_BYTES: u32 = 329;
+const FX_DATA_PAGE: u16 = 0xffff;
+const FX_DATA_BYTES: u32 = 234;
 const FXlogo: u32 = 0x000000;
 const FXlogoWith: i16 = 115;
 const FXlogoHeight: i16 = 16;
-const helloWorld: u32 = 0x0000EA;
 
 static mut x: i16 = (WIDTH - FXlogoWith) / 2;
 static mut y: i16 = 25;
@@ -83,7 +77,7 @@
     // put your setup code here, to run once:
     arduboy.begin();
     arduboy.set_frame_rate(30);
-    arduboyfx_begin_data(FX_DATA_PAGE);
+    FX::begin_data(FX_DATA_PAGE);
 }
 // The loop() function repeats forever after setup() is done
 #[no_mangle]
@@ -93,7 +87,7 @@
     if !arduboy.next_frame() {
         return;
     }
-    arduboyfx_draw_bitmap(x, y, FXlogo, 0, 0);
+    FX::draw_bitmap(x, y, FXlogo, 0, 0);
     x += xDir as i16;
     y += yDir as i16;
     if x == 0 || x == WIDTH - FXlogoWith {
@@ -102,8 +96,6 @@
     if y == 0 || y == HEIGHT - FXlogoHeight {
         yDir = -yDir;
     }
-    arduboyfx_set_cursor(10, 10);
-    arduboyfx_draw_string(helloWorld);
-    arduboyfx_display_clear();
+    FX::display_clear()
 }
 
\ No newline at end of file diff --git a/run b/run index a1c2d54..4104308 100755 --- a/run +++ b/run @@ -1,30 +1,93 @@ #!/bin/bash option=$1 - +optionpath=$2 upload(){ cargo build -p $option --release && cp ./target/arduboy/release/lib$option.a ./arduboy-rust/Wrapper-Project/lib/libgame.a && cd arduboy-rust/Wrapper-Project/ && pio run -v -t upload && cp ./.pio/build/arduboy/firmware.hex ./build/$option.hex && pio run -t clean && rm lib/libgame.a && cd ../../ } +help(){ + echo "Usage build and upload Project:" + echo " ./run For uploading /Project/game" + echo " ./run For uploading a game" + echo "" + echo "Usage FX-Data build and upload:" + echo " ./run fxbuild Build your fxdata" + echo " ./run fxupload Upload your fxdata" + echo " ./run fxall Build and Upload your fxdata" + echo " and the game in one step" + +} start(){ if upload ; then echo "all fine" else - echo Usage: for uploading your game \|./run.sh - echo Usage: for uploading an example game \| ./run.sh \ + help fi } +FOLDER=() +load_all_FOLDER_recurse() { + for i in "$1"/*;do + if [ -d "$i" ];then + dir=[] + IFS='/' read -ra dir <<< "$i" + if [ "${dir[-1]}" = "$optionpath" ];then + FOLDER+=("$i") + fi + load_all_FOLDER_recurse "$i" + fi + done +} + +fxbuild(){ + load_all_FOLDER_recurse "./Examples" + load_all_FOLDER_recurse "./Project" + python3 ./Tools/Arduboy-Python-Utilities/fxdata-build.py $FOLDER/fxdata/fxdata.txt +} + +fxupload(){ + load_all_FOLDER_recurse "./Examples" + load_all_FOLDER_recurse "./Project" + python3 ./Tools/Arduboy-Python-Utilities/fxdata-upload $FOLDER/fxdata/fxdata.bin +} + if [ -z "$option" ] then cargo build -p game --release && cp ./target/arduboy/release/libgame.a ./arduboy-rust/Wrapper-Project/lib/libgame.a && cd arduboy-rust/Wrapper-Project/ && pio run -v -t upload && cp ./.pio/build/arduboy/firmware.hex ./build/game.hex && pio run -t clean && rm lib/libgame.a && cd ../../ -elif [ "$option" = "doc" ] +elif [ "$option" = "fxbuild" ] +then + if fxbuild ; then + echo "Build complete" + else + help + fi +elif [ "$option" = "fxupload" ] +then + if fxupload ; then + echo "Upload finished" + else + help + fi +elif [ "$option" = "fxall" ] +then + if fxbuild ; then + echo "Build complete" + else + help + fi + if fxupload ; then + echo "Upload finished" + else + help + fi + option=$optionpath + start +elif [ "$option" = "doc" ] then cargo doc -p arduboy-rust && rm -r ./docs/doc/ && cp -r ./target/arduboy/doc ./docs/ -elif [ "$option" = "eeprom-byte" ] +elif [ "$option" = "eeprom-byte" ] then cargo build -p eeprom-byte --release && cp ./target/arduboy/release/libeeprom_byte.a ./arduboy-rust/Wrapper-Project/lib/libgame.a && cd arduboy-rust/Wrapper-Project/ && pio run -v -t upload && cp ./.pio/build/arduboy/firmware.hex ./build/eeprom-byte.hex && pio run -t clean && rm lib/libgame.a && cd ../../ else start - # echo Usage: for uploading your game \|./run.sh - # echo Usage: for uploading an example game \| ./run.sh \ fi diff --git a/run.bat b/run.bat index dfca76d..602f9be 100644 --- a/run.bat +++ b/run.bat @@ -1,12 +1,44 @@ @echo off set option=%1 - +set optionpath=%2 +set folderpath= if [%option%]==[] ( powershell -Command "cargo build -p game --release; cp ./target/arduboy/release/libgame.a ./arduboy-rust/Wrapper-Project/lib/libgame.a; cd arduboy-rust/Wrapper-Project/; pio run -v -t upload; cp ./.pio/build/arduboy/firmware.hex ./build/game.hex; pio run -t clean; rm lib/libgame.a; cd ../../" goto :eof ) -if %option%==doc ( + +if %option%==fxbuild ( + for /d /r "./Examples/" %%a in (*) do if /i %%~nxa==%optionpath% ( + set folderpath=%%a + goto :fxbuild + ) + for /d /r "./Project/" %%a in (*) do if /i %%~nxa==%optionpath% ( + set folderpath=%%a + goto :fxbuild + ) + goto :help +) else if %option%==fxupload ( + for /d /r "./Examples/" %%a in (*) do if /i %%~nxa==%optionpath% ( + set folderpath=%%a + goto :fxupload + ) + for /d /r "./Project/" %%a in (*) do if /i %%~nxa==%optionpath% ( + set folderpath=%%a + goto :fxupload + ) + goto :help +) else if %option%==fxall ( + for /d /r "./Examples/" %%a in (*) do if /i %%~nxa==%optionpath% ( + set folderpath=%%a + goto :fxall + ) + for /d /r "./Project/" %%a in (*) do if /i %%~nxa==%optionpath% ( + set folderpath=%%a + goto :fxall + ) + goto :help +) else if %option%==doc ( powershell -Command "cargo doc -p arduboy-rust; rm -r ./docs/doc/; cp -r ./target/arduboy/doc ./docs/" goto :eof ) else if %option%==eeprom-byte ( @@ -23,6 +55,40 @@ if ERRORLEVEL 1 ( ) goto :eof +:fxbuild +powershell -Command "$ErrorActionPreference='Stop'; python ./Tools/Arduboy-Python-Utilities/fxdata-build.py %folderpath%/fxdata/fxdata.txt" +if ERRORLEVEL 1 ( + goto :help +) +goto :eof + +:fxupload +powershell -Command "$ErrorActionPreference='Stop'; python ./Tools/Arduboy-Python-Utilities/fxdata-upload.py %folderpath%/fxdata/fxdata.bin" +if ERRORLEVEL 1 ( + goto :help +) +goto :eof + +:fxall +powershell -Command "$ErrorActionPreference='Stop'; python ./Tools/Arduboy-Python-Utilities/fxdata-build.py %folderpath%/fxdata/fxdata.txt" +if ERRORLEVEL 1 ( + goto :help +) +powershell -Command "$ErrorActionPreference='Stop'; python ./Tools/Arduboy-Python-Utilities/fxdata-upload.py %folderpath%/fxdata/fxdata.bin" +if ERRORLEVEL 1 ( + goto :help +) +set option=%optionpath% +goto :run + + :help -@echo Usage: .\run.bat // for uploading your game -@echo Usage: .\run.bat ^ // for uploading an example game \ No newline at end of file +@echo Usage build and upload Project: +@echo .\run.bat For uploading /Project/game +@echo .\run.bat ^ For uploading a game +@echo: +@echo Usage FX-Data build and upload: +@echo .\run.bat fxbuild ^ Build your fxdata +@echo .\run.bat fxupload ^ Upload your fxdata +@echo .\run.bat fxall ^ Build and Upload your fxdata +@echo and the game in one step \ No newline at end of file