cli dollcode encoder and decoder

don't decode to string by default

causes panic on invalid utf8, which we don't want to enforce

0xda157 a14b89f8 b0a75092

+10 -9
+1 -1
Cargo.lock
··· 185 186 [[package]] 187 name = "porcelain" 188 - version = "0.3.0" 189 dependencies = [ 190 "clap", 191 "lib-porcelain",
··· 185 186 [[package]] 187 name = "porcelain" 188 + version = "0.3.1" 189 dependencies = [ 190 "clap", 191 "lib-porcelain",
+1 -1
Cargo.toml
··· 4 5 [package] 6 name = "porcelain" 7 - version = "0.3.0" 8 license = "MIT" 9 authors = ["0xda157 <da157@voidq.com>"] 10 description = "cli dollcode encoder and decoder"
··· 4 5 [package] 6 name = "porcelain" 7 + version = "0.3.1" 8 license = "MIT" 9 authors = ["0xda157 <da157@voidq.com>"] 10 description = "cli dollcode encoder and decoder"
+4
README.md
··· 13 # ▖▖▘▘▌▘▌▌▘▘▘▌▌ 14 porcelain encode -x da157 # or --hex 15 # ▖▖▘▘▌▘▌▌▘▘▘▌▌ 16 ``` 17 18 ### decode ··· 24 # 893271 25 porcelain decode --hex ▖▖▘▘▌▘▌▌▘▘▘▌▌ # or -x 26 # DA157 27 ``` 28 29 ## packaged
··· 13 # ▖▖▘▘▌▘▌▌▘▘▘▌▌ 14 porcelain encode -x da157 # or --hex 15 # ▖▖▘▘▌▘▌▌▘▘▘▌▌ 16 + porcelain encode --string hello # or -s 17 + # ▖▖▖▌▘▖▖▌▘▘▌▖▌▖▘▌▖▌▖▖▘▌▌▘▖ 18 ``` 19 20 ### decode ··· 26 # 893271 27 porcelain decode --hex ▖▖▘▘▌▘▌▌▘▘▘▌▌ # or -x 28 # DA157 29 + porcelain decode --string ▖▖▖▌▘▖▖▌▘▘▌▖▌▖▘▌▖▌▖▖▘▌▌▘▖ # or -s 30 + # hello 31 ``` 32 33 ## packaged
+4 -7
src/main.rs
··· 99 #[cfg(not(feature = "bigint"))] 100 let res = u64::from_dollcode(dollcode).expect(err); 101 102 - let res_bytes = res.clone().to_be_bytes(); 103 - let str_res = str::from_utf8(&res_bytes).expect("failed to encode res as utf8"); 104 - 105 match dmatches.get_one("format").map(Id::as_ref) { 106 Some("decimial") => println!("{}", res), 107 Some("hex") => println!("{:X}", res), 108 - Some("string") => println!("{}", str_res), 109 - None => println!( 110 - "decimial: {}, hexadecimal: {:X}, string: {}", 111 - res, res, str_res 112 ), 113 Some(_) => unreachable!(), 114 } 115 }
··· 99 #[cfg(not(feature = "bigint"))] 100 let res = u64::from_dollcode(dollcode).expect(err); 101 102 match dmatches.get_one("format").map(Id::as_ref) { 103 Some("decimial") => println!("{}", res), 104 Some("hex") => println!("{:X}", res), 105 + Some("string") => println!( 106 + "{}", 107 + str::from_utf8(&res.clone().to_be_bytes()).expect("failed to encode res as utf8") 108 ), 109 + None => println!("decimial: {}, hexadecimal: {:X}", res, res), 110 Some(_) => unreachable!(), 111 } 112 }