/// Shared error bound for all CAN backend errors.
///
/// Backends define their own concrete error types; this trait ensures they are
/// compatible with the standard `Error` trait and are thread-safe.
/// Blanket implementation: any type satisfying the bounds automatically implements `CanError`.