fix bytes stuff - STILL NEED TO FIX TESTS
This commit is contained in:
parent
7111192081
commit
9fac0f3667
3 changed files with 31 additions and 16 deletions
|
@ -91,10 +91,10 @@ pub mod bytes {
|
|||
/// Encodes from bytes into catspeak
|
||||
///
|
||||
/// ```
|
||||
/// use cat2text::{anybase::bytes::encode, core::char_length};
|
||||
/// use cat2text::{anybase::bytes::encode, core::bytes::char_length};
|
||||
///
|
||||
/// let bytes = &[9, 1];
|
||||
/// let base = 10;
|
||||
/// let bytes = &[243];
|
||||
/// let base = 16;
|
||||
/// let char_length = char_length(base);
|
||||
///
|
||||
/// assert_eq!("meow mewo meow mrrp", encode(bytes, base, char_length));
|
||||
|
@ -114,9 +114,9 @@ pub mod bytes {
|
|||
/// Decodes catspeak into bytes
|
||||
///
|
||||
/// ```
|
||||
/// use cat2text::{anybase::bytes::decode, core::char_length};
|
||||
/// use cat2text::{anybase::bytes::decode, core::bytes::char_length};
|
||||
///
|
||||
/// let text = "mreow mrrp meow mrrp".to_string();
|
||||
/// let text = "mrrp nyaaaa~ meow".to_string();
|
||||
/// let base = 10;
|
||||
/// let char_length = char_length(base);
|
||||
///
|
||||
|
|
17
src/base4.rs
17
src/base4.rs
|
@ -9,11 +9,6 @@ pub fn alphabet() -> Vec<String> {
|
|||
return tmp;
|
||||
}
|
||||
|
||||
/// How many words long an english character is when translated to catspeak
|
||||
pub fn char_length() -> u32 {
|
||||
return 3;
|
||||
}
|
||||
|
||||
/// Encodes english text into base 4 catspeak
|
||||
///
|
||||
/// ```
|
||||
|
@ -22,7 +17,7 @@ pub fn char_length() -> u32 {
|
|||
/// assert_eq!("meow mreow mrrp; meow mrow meow meow mrow mrow mrrp mrrp mreow meow mrrp mrrp; meow meow mrow meow meow mrrp mrrp mrrp meow mrrp meow mrow", encode("i love cats".to_string()))
|
||||
/// ```
|
||||
pub fn encode(text: impl AsRef<str>) -> String {
|
||||
return anybase::encode(text.as_ref().to_string(), 4, char_length());
|
||||
return anybase::encode(text.as_ref().to_string(), 4, core::char_length(4));
|
||||
}
|
||||
|
||||
/// Decodes base 4 catspeak to english text
|
||||
|
@ -33,22 +28,22 @@ pub fn encode(text: impl AsRef<str>) -> String {
|
|||
/// assert_eq!("i love cats", decode("meow mreow mrrp; meow mrow meow meow mrow mrow mrrp mrrp mreow meow mrrp mrrp; meow meow mrow meow meow mrrp mrrp mrrp meow mrrp meow mrow".to_string()));
|
||||
/// ```
|
||||
pub fn decode(text: String) -> String {
|
||||
return anybase::decode(text, 4, char_length());
|
||||
return anybase::decode(text, 4, core::char_length(4));
|
||||
}
|
||||
|
||||
pub mod bytes {
|
||||
//! This handles encoding and decoding bytes to/from catspeak
|
||||
use super::char_length;
|
||||
use crate::anybase;
|
||||
use crate::core::bytes::char_length;
|
||||
/// Encodes from bytes into catspeak
|
||||
///
|
||||
/// ```
|
||||
/// use cat2text::base4::bytes::encode;
|
||||
///
|
||||
/// assert_eq!("meow mreow mrrp meow meow mrrp", encode(&[9, 1]));
|
||||
/// assert_eq!("meow mreow mrrp meow meow mrrp", encode(&[253..., 1]));
|
||||
/// ```
|
||||
pub fn encode(bytes: impl AsRef<[u8]>) -> String {
|
||||
anybase::bytes::encode(bytes, 4, char_length())
|
||||
anybase::bytes::encode(bytes, 4, char_length(4))
|
||||
}
|
||||
|
||||
/// Decodes catspeak into bytes
|
||||
|
@ -59,6 +54,6 @@ pub mod bytes {
|
|||
/// assert_eq!(vec![9, 1], decode("meow mreow mrrp meow meow mrrp".to_string()));
|
||||
/// ```
|
||||
pub fn decode(text: String) -> Vec<u8> {
|
||||
anybase::bytes::decode(text, 4, char_length())
|
||||
anybase::bytes::decode(text, 4, char_length(4))
|
||||
}
|
||||
}
|
||||
|
|
20
src/core.rs
20
src/core.rs
|
@ -135,3 +135,23 @@ pub fn char_length(base: u32) -> u32 {
|
|||
}
|
||||
return u32::MAX;
|
||||
}
|
||||
|
||||
pub mod bytes {
|
||||
/// Returns the minimum catspeak words per character needed for this base for bytes
|
||||
///
|
||||
/// ```
|
||||
/// use cat2text::core::bytes::char_length;
|
||||
///
|
||||
/// let base = 16;
|
||||
/// assert_eq!(char_length(base), 2)
|
||||
/// ```
|
||||
pub fn char_length(base: u32) -> u32 {
|
||||
for i in 1..base + 1 {
|
||||
let num = base.pow(i);
|
||||
if num > 255 {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return u32::MAX;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue