hermes_encoding_components/traits/
encode_and_decode_mut.rs

1use cgp::core::error::HasErrorType;
2
3use crate::traits::decode_mut::{CanDecodeMut, MutDecoder};
4use crate::traits::encode_mut::{CanEncodeMut, MutEncoder};
5use crate::traits::types::decode_buffer::HasDecodeBufferType;
6use crate::traits::types::encode_buffer::HasEncodeBufferType;
7
8pub trait CanEncodeAndDecodeMut<Strategy, Value>:
9    CanEncodeMut<Strategy, Value> + CanDecodeMut<Strategy, Value>
10{
11}
12
13impl<Encoding, Strategy, Value> CanEncodeAndDecodeMut<Strategy, Value> for Encoding where
14    Encoding: CanEncodeMut<Strategy, Value> + CanDecodeMut<Strategy, Value>
15{
16}
17
18pub trait MutEncoderAndDecoder<Encoding, Strategy, Value>:
19    MutEncoder<Encoding, Strategy, Value> + MutDecoder<Encoding, Strategy, Value>
20where
21    Encoding: HasEncodeBufferType + HasDecodeBufferType + HasErrorType,
22{
23}
24
25impl<Component, Encoding, Strategy, Value> MutEncoderAndDecoder<Encoding, Strategy, Value>
26    for Component
27where
28    Component: MutEncoder<Encoding, Strategy, Value> + MutDecoder<Encoding, Strategy, Value>,
29    Encoding: HasEncodeBufferType + HasDecodeBufferType + HasErrorType,
30{
31}