Trait StringWriter

Source
pub trait StringWriter {
    // Required methods
    fn write_char(&mut self, c: char);
    fn write_str(&mut self, s: &str);

    // Provided methods
    fn writer_hint(&mut self, _expectedlen: usize) { ... }
    fn as_mut_string(&mut self) -> Option<&mut String> { ... }
}
Expand description

String writer used by decoders. In most cases this will be an owned string.

Required Methods§

Source

fn write_char(&mut self, c: char)

Writes a single character.

Source

fn write_str(&mut self, s: &str)

Writes a string.

Provided Methods§

Source

fn writer_hint(&mut self, _expectedlen: usize)

Hints an expected lower bound on the length (in bytes) of the output until the next call to writer_hint, so that the writer can reserve the memory for writing. RawDecoders are recommended but not required to call this method with an appropriate estimate. By default this method does nothing.

Examples found in repository?
examples/rot13.rs (line 91)
86    fn raw_feed(
87        &mut self,
88        input: &[u8],
89        output: &mut dyn StringWriter,
90    ) -> (usize, Option<CodecError>) {
91        output.writer_hint(input.len());
92        let string = match from_utf8(input) {
93            Ok(s) => s,
94            Err(_e) => {
95                return (
96                    0,
97                    Some(CodecError {
98                        upto: 0, // Utf8Error::valid_up_to is unstable at the time of writing,
99                        // therefore we can’t quite do partial parsing yet
100                        cause: "input is not valid utf-8".into(),
101                    }),
102                );
103            }
104        };
105        for ch in string.chars() {
106            match ch {
107                'a'..='z' | 'A'..='Z' => output.write_char(rotate_byte(ch as u8) as char),
108                _ => output.write_char(ch),
109            }
110        }
111        (input.len(), None)
112    }
Source

fn as_mut_string(&mut self) -> Option<&mut String>

If this StringWriter is a String, returns a mutable reference to self as Some(&mut String). Returns None otherwise.

Implementations on Foreign Types§

Source§

impl StringWriter for String

Source§

fn writer_hint(&mut self, expectedlen: usize)

Source§

fn write_char(&mut self, c: char)

Source§

fn write_str(&mut self, s: &str)

Source§

fn as_mut_string(&mut self) -> Option<&mut String>

Implementors§