ruma_client_api/
device.rs1use ruma_common::{MilliSecondsSinceUnixEpoch, OwnedDeviceId};
4use serde::{Deserialize, Serialize};
5
6pub mod delete_device;
7pub mod delete_devices;
8pub mod get_device;
9pub mod get_devices;
10pub mod update_device;
11
12#[derive(Clone, Debug, Deserialize, Hash, Serialize)]
14#[cfg_attr(not(ruma_unstable_exhaustive_types), non_exhaustive)]
15pub struct Device {
16 pub device_id: OwnedDeviceId,
18
19 pub display_name: Option<String>,
21
22 pub last_seen_ip: Option<String>,
24
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub last_seen_ts: Option<MilliSecondsSinceUnixEpoch>,
28}
29
30impl Device {
31 pub fn new(device_id: OwnedDeviceId) -> Self {
33 Self { device_id, display_name: None, last_seen_ip: None, last_seen_ts: None }
34 }
35}