substrate_stellar_sdk/xdr/impls/operations/
manage_data.rs1use core::convert::AsRef;
2
3use crate::{
4 compound_types::LimitedString,
5 types::{ManageDataOp, OperationBody},
6 IntoDataValue, Operation, StellarSdkError,
7};
8
9impl Operation {
10 pub fn new_manage_data_put<T: AsRef<[u8]>, S: IntoDataValue>(
11 data_name: T,
12 data_value: S,
13 ) -> Result<Operation, StellarSdkError> {
14 let data_name = data_name.as_ref().to_vec();
15
16 Ok(Operation {
17 source_account: None,
18 body: OperationBody::ManageData(ManageDataOp {
19 data_name: LimitedString::new(data_name)?,
20 data_value: Some(data_value.into_data_value()?),
21 }),
22 })
23 }
24
25 pub fn new_manage_data_delete<T: AsRef<[u8]>>(data_name: T) -> Result<Operation, StellarSdkError> {
26 let data_name = data_name.as_ref().to_vec();
27
28 Ok(Operation {
29 source_account: None,
30 body: OperationBody::ManageData(ManageDataOp {
31 data_name: LimitedString::new(data_name)?,
32 data_value: None,
33 }),
34 })
35 }
36}