use alloc::{string::String, vec::Vec};
use io_jmap::{
client::JmapClientStdError,
rfc8620::{JmapMethodError, changes::JmapChangesError},
rfc8621::email::changes::JmapEmailChangesError,
};
pub fn encode(state: &str) -> Vec<u8> {
state.as_bytes().to_vec()
}
pub fn decode(bytes: &[u8]) -> Option<String> {
core::str::from_utf8(bytes).ok().map(String::from)
}
pub fn is_cannot_calculate_changes(err: &JmapClientStdError) -> bool {
let JmapClientStdError::EmailChanges(JmapEmailChangesError::Changes(JmapChangesError::Method(
method,
))) = err
else {
return false;
};
matches!(method, JmapMethodError::CannotCalculateChanges { .. })
}