Skip to main content

user_agent_parser/models/
user_agent.rs

1use std::borrow::Cow;
2
3/// The raw `User-Agent` header of a request.
4#[derive(Debug, Clone, Default, PartialEq, Eq, Hash)]
5pub struct UserAgent<'a> {
6    /// The header value, or `None` when the request carries no `User-Agent` header.
7    pub user_agent: Option<Cow<'a, str>>,
8}
9
10impl<'a> UserAgent<'a> {
11    /// Extracts the owned data.
12    #[inline]
13    pub fn into_owned(self) -> UserAgent<'static> {
14        let user_agent = self.user_agent.map(|c| Cow::from(c.into_owned()));
15
16        UserAgent {
17            user_agent,
18        }
19    }
20}