Skip to main content

oratos_core/
location.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
4pub struct Location {
5    pub page: String,
6    #[serde(skip_serializing_if = "Option::is_none")]
7    pub selector: Option<String>,
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub line: Option<u32>,
10}
11
12impl Location {
13    pub fn page(page: impl Into<String>) -> Self {
14        Self {
15            page: page.into(),
16            selector: None,
17            line: None,
18        }
19    }
20
21    pub fn with_selector(mut self, selector: impl Into<String>) -> Self {
22        self.selector = Some(selector.into());
23        self
24    }
25}