gd 0.0.0

Geometry Dash API wrapper written in Rust.
Documentation
use crate::crypto::{hash, robtop};

pub fn of<D: AsRef<[u8]>, K: AsRef<[u8]>>(data: D, key: K) -> String {
    fn of_inner(data: &[u8], key: &[u8]) -> String {
        robtop::encode(hash::sha1(data), key)
    }

    of_inner(data.as_ref(), key.as_ref())
}

pub fn of_with_salt<D: AsRef<[u8]>, S: AsRef<[u8]>, K: AsRef<[u8]>>(
    data: D,
    salt: S,
    key: K,
) -> String {
    fn of_with_salt_inner(data: &[u8], salt: &[u8], key: &[u8]) -> String {
        robtop::encode(hash::sha1_with_salt(data, salt), key)
    }

    of_with_salt_inner(data.as_ref(), salt.as_ref(), key.as_ref())
}