parsec_interface/requests/request/
request_auth.rs1use crate::requests::Result;
4use crate::secrecy::{ExposeSecret, Secret};
5use std::io::{Read, Write};
6
7#[allow(missing_debug_implementations)]
11pub struct RequestAuth {
12 pub buffer: Secret<Vec<u8>>,
14}
15
16impl RequestAuth {
17 pub fn new(bytes: Vec<u8>) -> Self {
19 RequestAuth {
20 buffer: Secret::new(bytes),
21 }
22 }
23
24 pub(super) fn read_from_stream(mut stream: &mut impl Read, len: usize) -> Result<RequestAuth> {
27 let buffer = get_from_stream!(stream; len);
28 Ok(RequestAuth {
29 buffer: Secret::new(buffer),
30 })
31 }
32
33 pub(super) fn write_to_stream(&self, stream: &mut impl Write) -> Result<()> {
35 stream.write_all(self.buffer.expose_secret())?;
36 Ok(())
37 }
38}