pub trait ClientData: DowncastSync {
    fn initialized(&self, _client_id: ClientId) { ... }
    fn disconnected(&self, _client_id: ClientId, _reason: DisconnectReason) { ... }
    fn debug(&self, f: &mut Formatter<'_>) -> Result { ... }
}
Expand description

A trait representing your data associated to a client

Provided Methods§

Notification that the client was initialized

Examples found in repository?
src/rs/server_impl/client.rs (line 80)
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
    pub(crate) fn new(
        stream: UnixStream,
        id: InnerClientId,
        debug: bool,
        data: Arc<dyn ClientData>,
    ) -> Self {
        let socket = BufferedSocket::new(Socket::from(stream));
        let mut map = ObjectMap::new();
        map.insert_at(
            1,
            Object {
                interface: &WL_DISPLAY_INTERFACE,
                version: 1,
                data: Data { user_data: Arc::new(DumbObjectData), serial: 0 },
            },
        )
        .unwrap();

        data.initialized(ClientId { id: id.clone() });

        Self { socket, map, debug, id, killed: false, last_serial: 0, data }
    }

Notification that the client is disconnected

Examples found in repository?
src/rs/server_impl/client.rs (line 311)
309
310
311
312
    pub(crate) fn kill(&mut self, reason: DisconnectReason) {
        self.killed = true;
        self.data.disconnected(ClientId { id: self.id.clone() }, reason);
    }

Helper for forwarding a Debug implementation of your ClientData type

By default will just print GlobalHandler { ... }

Examples found in repository?
src/rs/../server_api.rs (line 120)
119
120
121
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        self.debug(f)
    }

Implementations§

Returns true if the trait object wraps an object of type __T.

Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn’t.

Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn’t.

Returns a reference to the object within the trait object if it is of type __T, or None if it isn’t.

Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn’t.

Returns an Arc-ed object from an Arc-ed trait object if the underlying object is of type __T. Returns the original Arc-ed trait if it isn’t.

Trait Implementations§

Formats the value using the given formatter. Read more

Implementations on Foreign Types§

Implementors§