diff --git a/crates/message/src/message.rs b/crates/message/src/message.rs index 572b1959..3d0cd02b 100644 --- a/crates/message/src/message.rs +++ b/crates/message/src/message.rs @@ -915,6 +915,10 @@ impl UserData for Message { let data = this.get_data(); lua.create_string(&*data) }); + methods.add_method("set_data", move |_lua, this, data: mlua::String| { + this.assign_data(data.as_bytes().to_vec()); + Ok(()) + }); methods.add_method("id", move |_, this, _: ()| Ok(this.id().to_string())); methods.add_method("sender", move |_, this, _: ()| { Ok(this.sender().map_err(any_err)?) diff --git a/docs/reference/message/get_data.md b/docs/reference/message/get_data.md index 3c29cbeb..7d6add91 100644 --- a/docs/reference/message/get_data.md +++ b/docs/reference/message/get_data.md @@ -2,3 +2,5 @@ Returns the message body/data as a string. +See also: +* [msg:set_data()](set_data.md) diff --git a/docs/reference/message/set_data.md b/docs/reference/message/set_data.md new file mode 100644 index 00000000..bdd96708 --- /dev/null +++ b/docs/reference/message/set_data.md @@ -0,0 +1,11 @@ +# `message:set_data(payload)` + +{{since('dev')}} + +Replaces the message body/data completely. +It is your responsibility to ensure that the content is well-formed, has +canonical CRLF line endings, and uses appropriate transfer-encoding, otherwise +the system will misbehave when delivering the message. + +See also: +* [msg:get_data()](get_data.md)