pub mod garnet_api_object_commands;
pub mod garnet_status;
pub mod garnet_watch_api;
pub mod i_garnet_advanced_api;
pub mod i_garnet_api;
use std::io::Cursor;
use wobject::{hash::hash_object::HashObject, set::set_object::SetObject};
pub(crate) fn hash_fields(payload: &[u8]) -> Option<Vec<Vec<u8>>> {
HashObject::deserialize(&mut Cursor::new(payload))
.ok()
.map(|o| o.get_keys())
}
pub(crate) fn set_members(payload: &[u8]) -> Option<Vec<Vec<u8>>> {
SetObject::deserialize(&mut Cursor::new(payload))
.ok()
.map(|o| o.get_keys())
}
pub(crate) fn hash_or_set_members(payload: &[u8]) -> Option<Vec<Vec<u8>>> {
hash_fields(payload).or_else(|| set_members(payload))
}