rsip/headers/typed/
in_reply_to.rs

1#[doc(hidden)]
2pub use super::tokenizers::TokenListTokenizer as Tokenizer;
3
4use rsip_derives::TypedHeader;
5use std::convert::TryFrom;
6
7/// The `In-Reply-To` header in its [typed](super) form.
8#[derive(TypedHeader, Eq, PartialEq, Clone, Debug)]
9pub struct InReplyTo(pub Vec<String>);
10
11impl<'a> TryFrom<Tokenizer<'a>> for InReplyTo {
12    type Error = crate::Error;
13
14    fn try_from(tokenizer: Tokenizer) -> Result<Self, Self::Error> {
15        Ok(Self(
16            tokenizer
17                .tokens
18                .iter()
19                .map(|s| s.to_string())
20                .collect::<Vec<String>>(),
21        ))
22    }
23}
24
25impl std::fmt::Display for InReplyTo {
26    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
27        write!(f, "{}", self.0.join(", "))
28    }
29}