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}