user_agent_parser/models/
product.rs1use std::borrow::Cow;
2
3#[derive(Debug, Clone, Default, PartialEq, Eq, Hash)]
5pub struct Product<'a> {
6 pub name: Option<Cow<'a, str>>,
8 pub major: Option<Cow<'a, str>>,
10 pub minor: Option<Cow<'a, str>>,
12 pub patch: Option<Cow<'a, str>>,
14}
15
16impl<'a> Product<'a> {
17 #[inline]
19 pub fn into_owned(self) -> Product<'static> {
20 let name = self.name.map(|c| Cow::from(c.into_owned()));
21 let major = self.major.map(|c| Cow::from(c.into_owned()));
22 let minor = self.minor.map(|c| Cow::from(c.into_owned()));
23 let patch = self.patch.map(|c| Cow::from(c.into_owned()));
24
25 Product {
26 name,
27 major,
28 minor,
29 patch,
30 }
31 }
32}