use crate::base62;
use super::SnowID;
impl SnowID {
#[inline]
pub fn generate_base62_array(&self) -> ([u8; base62::MAX_LEN], usize) {
let id = self.generate();
base62::encode_array(id)
}
#[inline]
pub fn generate_base62_into<'a>(&self, buf: &'a mut [u8; base62::MAX_LEN]) -> (&'a str, u64) {
let id = self.generate();
(base62::encode_into(id, buf), id)
}
pub fn generate_base62(&self) -> String {
let id = self.generate();
base62::encode(id)
}
pub fn generate_base62_with_raw(&self) -> (String, u64) {
let id = self.generate();
(base62::encode(id), id)
}
#[allow(clippy::unused_self)] pub fn decode_base62(&self, encoded: &str) -> Result<u64, base62::DecodeError> {
base62::decode(encoded)
}
pub fn decompose_base62(&self, encoded: &str) -> Result<(u64, u16, u16), base62::DecodeError> {
let id = self.decode_base62(encoded)?;
Ok(self.extract.decompose(id))
}
}