wry_bindgen_runtime/wire/
object_store.rs1use super::{BinaryDecode, BinaryEncode, DecodeError, DecodedData, EncodedData};
2
3#[derive(Clone, Copy)]
4pub struct ObjectHandle(u32);
5
6impl ObjectHandle {
7 pub(crate) const fn from_raw(raw: u32) -> Self {
8 Self(raw)
9 }
10
11 pub(crate) fn raw(self) -> u32 {
12 self.0
13 }
14
15 pub fn drop_rust_object(self) {
17 crate::batch::drop_rust_object(self);
18 }
19}
20
21impl BinaryDecode for ObjectHandle {
22 fn decode(decoder: &mut DecodedData) -> Result<Self, DecodeError> {
23 Ok(ObjectHandle::from_raw(u32::decode(decoder)?))
24 }
25}
26
27impl BinaryEncode for ObjectHandle {
28 fn encode(self, encoder: &mut EncodedData) {
29 self.0.encode(encoder);
30 }
31}
32
33impl super::EncodeTypeDef for ObjectHandle {
34 fn encode_type_def(encoder: &mut super::TypeDef) {
35 u32::encode_type_def(encoder);
36 }
37}