minified version
This commit is contained in:
		
							parent
							
								
									28c9d43f01
								
							
						
					
					
						commit
						ceb9133740
					
				
							
								
								
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "rust-analyzer.linkedProjects": [
 | 
				
			||||||
 | 
					        "./Cargo.toml"
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										59
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										59
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| 
						 | 
					@ -11,12 +11,6 @@ dependencies = [
 | 
				
			||||||
 "winapi",
 | 
					 "winapi",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "anyhow"
 | 
					 | 
				
			||||||
version = "1.0.81"
 | 
					 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					 | 
				
			||||||
checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "atty"
 | 
					name = "atty"
 | 
				
			||||||
version = "0.2.14"
 | 
					version = "0.2.14"
 | 
				
			||||||
| 
						 | 
					@ -114,12 +108,6 @@ dependencies = [
 | 
				
			||||||
 "wasi",
 | 
					 "wasi",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "glob"
 | 
					 | 
				
			||||||
version = "0.3.1"
 | 
					 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					 | 
				
			||||||
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "hermit-abi"
 | 
					name = "hermit-abi"
 | 
				
			||||||
version = "0.1.19"
 | 
					version = "0.1.19"
 | 
				
			||||||
| 
						 | 
					@ -129,30 +117,6 @@ dependencies = [
 | 
				
			||||||
 "libc",
 | 
					 "libc",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "include_dir"
 | 
					 | 
				
			||||||
version = "0.6.2"
 | 
					 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					 | 
				
			||||||
checksum = "24b56e147e6187d61e9d0f039f10e070d0c0a887e24fe0bb9ca3f29bfde62cab"
 | 
					 | 
				
			||||||
dependencies = [
 | 
					 | 
				
			||||||
 "glob",
 | 
					 | 
				
			||||||
 "include_dir_impl",
 | 
					 | 
				
			||||||
 "proc-macro-hack",
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "include_dir_impl"
 | 
					 | 
				
			||||||
version = "0.6.2"
 | 
					 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					 | 
				
			||||||
checksum = "0a0c890c85da4bab7bce4204c707396bbd3c6c8a681716a51c8814cfc2b682df"
 | 
					 | 
				
			||||||
dependencies = [
 | 
					 | 
				
			||||||
 "anyhow",
 | 
					 | 
				
			||||||
 "proc-macro-hack",
 | 
					 | 
				
			||||||
 "proc-macro2",
 | 
					 | 
				
			||||||
 "quote",
 | 
					 | 
				
			||||||
 "syn 1.0.109",
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "itoa"
 | 
					name = "itoa"
 | 
				
			||||||
version = "1.0.10"
 | 
					version = "1.0.10"
 | 
				
			||||||
| 
						 | 
					@ -176,11 +140,9 @@ name = "pokerust"
 | 
				
			||||||
version = "0.1.0"
 | 
					version = "0.1.0"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "clap",
 | 
					 "clap",
 | 
				
			||||||
 "include_dir",
 | 
					 | 
				
			||||||
 "once_cell",
 | 
					 "once_cell",
 | 
				
			||||||
 "rand",
 | 
					 "rand",
 | 
				
			||||||
 "rust-embed",
 | 
					 "rust-embed",
 | 
				
			||||||
 "serde",
 | 
					 | 
				
			||||||
 "serde_json",
 | 
					 "serde_json",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -190,12 +152,6 @@ version = "0.2.17"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 | 
					checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					 | 
				
			||||||
name = "proc-macro-hack"
 | 
					 | 
				
			||||||
version = "0.5.20+deprecated"
 | 
					 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					 | 
				
			||||||
checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "proc-macro2"
 | 
					name = "proc-macro2"
 | 
				
			||||||
version = "1.0.79"
 | 
					version = "1.0.79"
 | 
				
			||||||
| 
						 | 
					@ -264,7 +220,7 @@ dependencies = [
 | 
				
			||||||
 "proc-macro2",
 | 
					 "proc-macro2",
 | 
				
			||||||
 "quote",
 | 
					 "quote",
 | 
				
			||||||
 "rust-embed-utils",
 | 
					 "rust-embed-utils",
 | 
				
			||||||
 "syn 2.0.55",
 | 
					 "syn",
 | 
				
			||||||
 "walkdir",
 | 
					 "walkdir",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -310,7 +266,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "proc-macro2",
 | 
					 "proc-macro2",
 | 
				
			||||||
 "quote",
 | 
					 "quote",
 | 
				
			||||||
 "syn 2.0.55",
 | 
					 "syn",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
| 
						 | 
					@ -341,17 +297,6 @@ version = "0.8.0"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 | 
					checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[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.55"
 | 
					version = "2.0.55"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,14 +3,10 @@ name = "pokerust"
 | 
				
			||||||
version = "0.1.0"
 | 
					version = "0.1.0"
 | 
				
			||||||
edition = "2021"
 | 
					edition = "2021"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clap = "2.0.0"
 | 
				
			||||||
rand = "0.8"
 | 
					rand = "0.8"
 | 
				
			||||||
serde = { version = "1.0", features = ["derive"] }
 | 
					 | 
				
			||||||
serde_json = "1.0"
 | 
					serde_json = "1.0"
 | 
				
			||||||
once_cell = "1.8.0"
 | 
					once_cell = "1.8.0"
 | 
				
			||||||
clap = { version = "2" }
 | 
					 | 
				
			||||||
include_dir = "0.6.0"
 | 
					 | 
				
			||||||
rust-embed = "8.3.0"
 | 
					rust-embed = "8.3.0"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								README.md
									
									
									
									
									
								
							| 
						 | 
					@ -1,10 +1,9 @@
 | 
				
			||||||
# PokeRust
 | 
					# PokeRust
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*For educational purposes*  
 | 
				
			||||||
A simple colorscript written in Rust.
 | 
					A simple colorscript written in Rust.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Inspired by [phoneybadger's pokemon-coloscripts](https://gitlab.com/phoneybadger/pokemon-colorscripts)
 | 
					Inspired by [phoneybadger's pokemon-coloscripts](https://gitlab.com/phoneybadger/pokemon-colorscripts).
 | 
				
			||||||
 | 
					 | 
				
			||||||
*For educational purposes*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Performance
 | 
					## Performance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,3 +15,9 @@ This is the Python implementation:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is the Rust implementation:
 | 
					This is the Rust implementation:
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Credits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [phoneybadger](https://gitlab.com/phoneybadger) for the original colorscripts and inspiration.
 | 
				
			||||||
 | 
					- [talwat](https://github.com/talwat/pokeget-rs) for Rust code reference. (fast af implementation at ~1ms)
 | 
				
			||||||
 | 
					- [msikma](https://github.com/msikma/pokesprite/) for the colorscripts' sprites.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
pkgname=pokerust-git
 | 
					pkgname=pokerust-git
 | 
				
			||||||
pkgdesc="Pokemon Colorscripts written in Rust"
 | 
					pkgdesc="Pokemon Colorscripts written in Rust"
 | 
				
			||||||
_gitname=pokerust
 | 
					_gitname=pokerust
 | 
				
			||||||
pkgver=r8.c1e2b64
 | 
					pkgver=r21.28c9d43
 | 
				
			||||||
pkgrel=1
 | 
					pkgrel=1
 | 
				
			||||||
arch=('x86_64')
 | 
					arch=('x86_64')
 | 
				
			||||||
url="https://github.com/Vomitblood/$_gitname"
 | 
					url="https://github.com/Vomitblood/$_gitname"
 | 
				
			||||||
| 
						 | 
					@ -21,10 +21,14 @@ pkgver() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build() {
 | 
					build() {
 | 
				
			||||||
  cd "$srcdir/$_gitname"
 | 
					  cd "$srcdir/$_gitname"
 | 
				
			||||||
 | 
					  # build main program
 | 
				
			||||||
  cargo build --release
 | 
					  cargo build --release
 | 
				
			||||||
 | 
					  # build mini program
 | 
				
			||||||
 | 
					  cargo build --release --bin minimon
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package() {
 | 
					package() {
 | 
				
			||||||
  cd "$srcdir/$_gitname"
 | 
					  cd "$srcdir/$_gitname"
 | 
				
			||||||
  install -Dm755 target/release/$_gitname "$pkgdir/usr/bin/$_gitname"
 | 
					  install -Dm755 target/release/$_gitname "$pkgdir/usr/bin/$_gitname"
 | 
				
			||||||
 | 
					  install -Dm755 target/release/minimon "$pkgdir/usr/bin/minimon"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										19
									
								
								src/bin/minimon.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/bin/minimon.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					use rand::prelude::SliceRandom;
 | 
				
			||||||
 | 
					use rust_embed::RustEmbed;
 | 
				
			||||||
 | 
					use std::str;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(RustEmbed)]
 | 
				
			||||||
 | 
					#[folder = "colorscripts/small/regular/"]
 | 
				
			||||||
 | 
					struct ColorScriptsDir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn main() {
 | 
				
			||||||
 | 
					    let files: Vec<_> = ColorScriptsDir::iter().collect();
 | 
				
			||||||
 | 
					    let mut rng = rand::thread_rng();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if let Some(random_file) = files.choose(&mut rng) {
 | 
				
			||||||
 | 
					        println!("Random Pokémon Sprite: {}", random_file);
 | 
				
			||||||
 | 
					        if let Some(file_data) = ColorScriptsDir::get(random_file) {
 | 
				
			||||||
 | 
					            println!("{}", std::str::from_utf8(file_data.data.as_ref()).unwrap());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@ use rand::Rng;
 | 
				
			||||||
// set global constants
 | 
					// set global constants
 | 
				
			||||||
#[derive(rust_embed::RustEmbed)]
 | 
					#[derive(rust_embed::RustEmbed)]
 | 
				
			||||||
#[folder = "colorscripts/"]
 | 
					#[folder = "colorscripts/"]
 | 
				
			||||||
pub struct ColorScriptsDir;
 | 
					struct ColorScriptsDir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const POKEMON_JSON: &str = std::include_str!("../pokemon.json");
 | 
					const POKEMON_JSON: &str = std::include_str!("../pokemon.json");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue