sui_json_rpc_types/
sui_object.rs1use std::fmt;
5use std::fmt::{Display, Formatter};
6
7use schemars::JsonSchema;
8use serde::Deserialize;
9use serde::Serialize;
10
11use sui_types::base_types::{ObjectDigest, ObjectID, ObjectRef, SequenceNumber};
12
13#[derive(Debug, Clone, Deserialize, Serialize, JsonSchema, Eq, PartialEq, Ord, PartialOrd)]
14#[serde(rename_all = "camelCase", rename = "ObjectRef")]
15pub struct SuiObjectRef {
16 pub object_id: ObjectID,
18 pub version: SequenceNumber,
20 pub digest: ObjectDigest,
22}
23
24impl SuiObjectRef {
25 pub fn to_object_ref(&self) -> ObjectRef {
26 (self.object_id, self.version, self.digest)
27 }
28}
29
30impl Display for SuiObjectRef {
31 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
32 write!(
33 f,
34 "Object ID: {}, version: {}, digest: {}",
35 self.object_id, self.version, self.digest
36 )
37 }
38}
39
40impl From<ObjectRef> for SuiObjectRef {
41 fn from(oref: ObjectRef) -> Self {
42 Self {
43 object_id: oref.0,
44 version: oref.1,
45 digest: oref.2,
46 }
47 }
48}