redoubt_codec_core/collections/
redoubt_string.rs

1// Copyright (c) 2025-2026 Federico Hoerth <memparanoid@gmail.com>
2// SPDX-License-Identifier: GPL-3.0-only
3// See LICENSE in the repository root for full license text.
4
5//! Proxy codec implementation for `RedoubtString`.
6//!
7//! All codec traits simply delegate to the inner `String` implementation.
8
9use redoubt_alloc::RedoubtString;
10
11use crate::codec_buffer::RedoubtCodecBuffer;
12use crate::error::{DecodeError, EncodeError, OverflowError};
13use crate::traits::{BytesRequired, Decode, Encode};
14
15impl BytesRequired for RedoubtString {
16    #[inline(always)]
17    fn encode_bytes_required(&self) -> Result<usize, OverflowError> {
18        // Delegate to inner String
19        self.as_string().encode_bytes_required()
20    }
21}
22
23impl Encode for RedoubtString {
24    #[inline(always)]
25    fn encode_into(&mut self, buf: &mut RedoubtCodecBuffer) -> Result<(), EncodeError> {
26        // Delegate to inner String
27        self.as_mut_string().encode_into(buf)
28    }
29}
30
31impl Decode for RedoubtString {
32    #[inline(always)]
33    fn decode_from(&mut self, buf: &mut &mut [u8]) -> Result<(), DecodeError> {
34        // Delegate to inner String
35        self.as_mut_string().decode_from(buf)
36    }
37}