tonlib_core/message/nft/
get_static_data.rs1use super::NFT_GET_STATIC_DATA;
2use crate::cell::{Cell, CellBuilder};
3use crate::message::{HasOpcode, TonMessage, TonMessageError};
4
5#[derive(Clone, Debug, PartialEq)]
13pub struct NftGetStaticDataMessage {
14 pub query_id: u64,
16}
17
18#[allow(clippy::new_without_default)]
19impl NftGetStaticDataMessage {
20 pub fn new() -> Self {
21 NftGetStaticDataMessage { query_id: 0 }
22 }
23}
24
25impl TonMessage for NftGetStaticDataMessage {
26 fn build(&self) -> Result<Cell, TonMessageError> {
27 let mut builder = CellBuilder::new();
28 builder.store_u32(32, Self::opcode())?;
29 builder.store_u64(64, self.query_id)?;
30
31 Ok(builder.build()?)
32 }
33
34 fn parse(cell: &Cell) -> Result<Self, TonMessageError> {
35 let mut parser = cell.parser();
36
37 let opcode: u32 = parser.load_u32(32)?;
38 let query_id = parser.load_u64(64)?;
39 parser.ensure_empty()?;
40
41 let result = NftGetStaticDataMessage { query_id };
42 result.verify_opcode(opcode)?;
43 Ok(result)
44 }
45}
46
47impl HasOpcode for NftGetStaticDataMessage {
48 fn set_query_id(&mut self, query_id: u64) {
49 self.query_id = query_id;
50 }
51
52 fn query_id(&self) -> u64 {
53 self.query_id
54 }
55
56 fn opcode() -> u32 {
57 NFT_GET_STATIC_DATA
58 }
59}