graph_http/traits/
odata_link.rs

1pub trait ODataNextLink<RHS = Self> {
2    /// Get the OData next link URL.
3    fn odata_next_link(&self) -> Option<String>;
4}
5
6impl ODataNextLink for serde_json::Value {
7    fn odata_next_link(&self) -> Option<String> {
8        self["@odata.nextLink"].as_str().map(|s| s.to_string())
9    }
10}
11
12pub trait ODataDownloadLink<RHS = Self> {
13    /// Get the OData next link URL.
14    fn odata_download_link(&self) -> Option<String>;
15}
16
17impl ODataDownloadLink for serde_json::Value {
18    fn odata_download_link(&self) -> Option<String> {
19        self["@microsoft.graph.downloadUrl"]
20            .as_str()
21            .map(|s| s.to_string())
22    }
23}
24
25pub trait ODataMetadataLink<RHS = Self> {
26    /// Get the OData next link URL.
27    fn odata_metadata_link(&self) -> Option<String>;
28}
29
30impl ODataMetadataLink for serde_json::Value {
31    fn odata_metadata_link(&self) -> Option<String> {
32        self["@odata.context"].as_str().map(|s| s.to_string())
33    }
34}
35
36pub trait ODataDeltaLink<RHS = Self> {
37    /// Get the OData next link URL.
38    fn odata_delta_link(&self) -> Option<String>;
39}
40
41impl ODataDeltaLink for serde_json::Value {
42    fn odata_delta_link(&self) -> Option<String> {
43        self["@odata.deltaLink"].as_str().map(|s| s.to_string())
44    }
45}
46
47pub trait UploadSessionLink {
48    fn upload_session_link(&self) -> Option<String>;
49}
50
51impl UploadSessionLink for serde_json::Value {
52    fn upload_session_link(&self) -> Option<String> {
53        self["uploadUrl"].as_str().map(|s| s.to_string())
54    }
55}