Advanced Message

Having to pass two arguments to create the Message is annoying, why not pass the Message directly!

First let's add some documentation to the struct:

/// A simple message with a title #[derive(BorshDeserialize, BorshSerialize, Deserialize, Serialize)] #[serde(crate = "near_sdk::serde")] #[witgen] pub struct Message { /// Title that describes the message title: String, /// body of the message body: String, }

Deserialize and Serialize are now needed to allow the Message to be parsed to and from JSON.

Update methods

#[near_bindgen] impl StatusMessage { pub fn set_status(&mut self, message: Message) { let account_id = env::signer_account_id(); self.records.insert(&account_id, &message); } pub fn get_status(&self, account_id: AccountId) -> Option<Message> { self.records.get(&account_id) } }

Now we have Message as a argument to set_status and don't need to convert Message manually when returning it from get_status.