floria_plugin_sdk/utils/
depiction.rs1use super::super::*;
2
3use std::fmt;
4
5pub const MARKUP_DELIMITER: char = '|';
7
8pub const MARKUP_ESCAPED_DELIMITER: &str = "\\|";
10
11pub fn escape_depiction_markup<ThingT>(thing: ThingT) -> String
13where
14 ThingT: fmt::Display,
15{
16 thing.to_string().replace(MARKUP_DELIMITER, MARKUP_ESCAPED_DELIMITER)
17}
18
19pub trait MapEscapeDepictionError<OkT> {
25 fn map_escape_depiction_error(self) -> Result<OkT, DispatchError>;
27}
28
29impl<OkT, FromErrorT> MapEscapeDepictionError<OkT> for Result<OkT, FromErrorT>
30where
31 FromErrorT: fmt::Display,
32{
33 fn map_escape_depiction_error(self) -> Result<OkT, DispatchError> {
34 self.map_err(|error| escape_depiction_markup(error))
35 }
36}