wl_clipboard_rs/
seat_data.rs1use crate::data_control::{Device, Offer};
2
3#[derive(Default)]
4pub struct SeatData {
5 pub name: Option<String>,
7
8 pub device: Option<Device>,
10
11 pub offer: Option<Offer>,
13
14 pub primary_offer: Option<Offer>,
16}
17
18impl SeatData {
19 pub fn set_name(&mut self, name: String) {
21 self.name = Some(name)
22 }
23
24 pub fn set_device(&mut self, device: Option<Device>) {
28 let old_device = self.device.take();
29 self.device = device;
30
31 if let Some(device) = old_device {
32 device.destroy();
33 }
34 }
35
36 pub fn set_offer(&mut self, new_offer: Option<Offer>) {
40 let old_offer = self.offer.take();
41 self.offer = new_offer;
42
43 if let Some(offer) = old_offer {
44 offer.destroy();
45 }
46 }
47
48 pub fn set_primary_offer(&mut self, new_offer: Option<Offer>) {
52 let old_offer = self.primary_offer.take();
53 self.primary_offer = new_offer;
54
55 if let Some(offer) = old_offer {
56 offer.destroy();
57 }
58 }
59}