From 8979029e299b3a5a193d26a55d5a10fb8178e4ad Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 20 Nov 2022 20:36:56 +0800 Subject: [PATCH] feat: add fast-qr --- README.md | 4 +- __misc/fastqr/Cargo.lock | 135 ++++++++++++++++++++++++++++++++++++++ __misc/fastqr/Cargo.toml | 10 +++ __misc/fastqr/src/main.rs | 15 +++++ 4 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 __misc/fastqr/Cargo.lock create mode 100644 __misc/fastqr/Cargo.toml create mode 100644 __misc/fastqr/src/main.rs diff --git a/README.md b/README.md index 9a46729..3ed79bf 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Project or files: │   ├── btc-address │   ├── crypto │   ├── curve25519 +│   ├── efficient_sm2 │   ├── highwayhash │   ├── hmac_sha1 │   ├── jsonwebtoken @@ -109,6 +110,7 @@ Project or files: │   ├── bytes │   ├── erasure-coding │   ├── fancy-regex +│   ├── fastqr │   ├── human_panic │   ├── icalendar │   ├── lazy_static @@ -251,6 +253,6 @@ Project or files: ├── vec.rs └── while.rs -220 directories, 38 files +222 directories, 38 files ``` diff --git a/__misc/fastqr/Cargo.lock b/__misc/fastqr/Cargo.lock new file mode 100644 index 0000000..1d8ef8e --- /dev/null +++ b/__misc/fastqr/Cargo.lock @@ -0,0 +1,135 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "fast_qr" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1567f9472e73c7eb6d31fab9f5caa106632608401bc8642cf6c232d3d5825902" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "fastqr" +version = "0.1.0" +dependencies = [ + "fast_qr", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "proc-macro2" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "syn" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "wasm-bindgen" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" diff --git a/__misc/fastqr/Cargo.toml b/__misc/fastqr/Cargo.toml new file mode 100644 index 0000000..8cd0c9a --- /dev/null +++ b/__misc/fastqr/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "fastqr" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +fast_qr = "0.6.1" + diff --git a/__misc/fastqr/src/main.rs b/__misc/fastqr/src/main.rs new file mode 100644 index 0000000..ba67791 --- /dev/null +++ b/__misc/fastqr/src/main.rs @@ -0,0 +1,15 @@ +use fast_qr::convert::ConvertError; +use fast_qr::qr::QRBuilder; + +fn main() -> Result<(), ConvertError> { + // QRBuilder::new can fail if content is too big for version, + // please check before unwrapping. + let qrcode = QRBuilder::new("https://example.com/".into()) + .build() + .unwrap(); + + let str = qrcode.to_str(); // .print() exists + println!("{}", str); + + Ok(()) +}