namespace EM.LowLevel
{
///
/// Decodes device-specific binary responses into C#-friendly models.
///
public interface IDataDecoder
{
///
/// Decode a response of a known type into a model.
///
///
/// Target model type
///
///
/// Raw or deframed payload depending on transport contract
///
///
/// Decoded model
///
TModel Decode(ReadOnlySpan payload);
///
/// Try-decode variant to avoid throwing on partial/bad frames.
///
bool TryDecode(ReadOnlySpan payload, out TModel model);
}
}