athena_rs 3.26.3

Hyper performant polyglot Database driver
//! Opaque tokens derived from internal gateway cache key strings for client-facing output.

/// Full SHA-256 hex digest of the internal cache key (`build_fetch_hashed_cache_key`, GET fetch keys, etc.).
#[must_use]
pub fn cache_key_client_token(raw: &str) -> String {
    sha256::digest(raw)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn token_is_stable_and_length_64_hex() {
        let a = cache_key_client_token("user:_:*:100:false:abc");
        let b = cache_key_client_token("user:_:*:100:false:abc");
        assert_eq!(a, b);
        assert_eq!(a.len(), 64);
        assert!(a.chars().all(|c| c.is_ascii_hexdigit()));
    }

    #[test]
    fn token_differs_when_input_differs() {
        assert_ne!(cache_key_client_token("a"), cache_key_client_token("b"));
    }
}