sui_gql_client/queries/
outputs.rsuse af_sui_types::{encode_base64_default, ObjectId, StructTag, TypeTag};
use derive_more::Display;
#[derive(Clone, Debug, Display, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum DynamicField {
#[display("DOF {{\n\t{_0}: {_1}\n}})")]
Object(ObjectKey, RawMoveStruct),
#[display("DF {{\n\t{_0}\n}})")]
Field(RawMoveValue),
}
#[derive(Clone, Debug, Display, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[display("({object_id}, {version})")]
pub struct ObjectKey {
pub object_id: ObjectId,
pub version: u64,
}
#[derive(Clone, Debug, Display, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[display("{type_} {{\n\t{}\n}}", encode_base64_default(bcs))]
pub struct RawMoveValue {
pub type_: TypeTag,
pub bcs: Vec<u8>,
}
#[cfg(feature = "move-type")]
impl<T: af_move_type::MoveType> TryFrom<RawMoveValue> for af_move_type::MoveInstance<T> {
type Error = af_move_type::FromRawTypeError;
fn try_from(RawMoveValue { type_, bcs }: RawMoveValue) -> Result<Self, Self::Error> {
Self::from_raw_type(type_, &bcs)
}
}
#[cfg(feature = "move-type")]
impl<T: af_move_type::MoveType> TryFrom<af_move_type::MoveInstance<T>> for RawMoveValue {
type Error = bcs::Error;
fn try_from(value: af_move_type::MoveInstance<T>) -> Result<Self, Self::Error> {
Ok(Self {
type_: value.type_.into(),
bcs: value.value.to_bcs()?,
})
}
}
#[derive(Clone, Debug, Display, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[display("{type_} {{\n\t{}\n}}", encode_base64_default(bcs))]
pub struct RawMoveStruct {
pub type_: StructTag,
pub bcs: Vec<u8>,
}
#[cfg(feature = "move-type")]
impl<T: af_move_type::MoveStruct> TryFrom<RawMoveStruct> for af_move_type::MoveInstance<T> {
type Error = af_move_type::FromRawStructError;
fn try_from(RawMoveStruct { type_, bcs }: RawMoveStruct) -> Result<Self, Self::Error> {
Self::from_raw_struct(type_, &bcs)
}
}
#[cfg(feature = "move-type")]
impl<T: af_move_type::MoveStruct> TryFrom<af_move_type::MoveInstance<T>> for RawMoveStruct {
type Error = bcs::Error;
fn try_from(value: af_move_type::MoveInstance<T>) -> Result<Self, Self::Error> {
Ok(Self {
type_: value.type_.into(),
bcs: value.value.to_bcs()?,
})
}
}