hermes_encoding_components/traits/
encode_and_decode_mut.rs1use 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}