ST
Size: a a a
ST
ST
f
trait Callback: Fn(String, String, serde_json::Value) -> serde_json::Value + Clone {}
type XCallback = Box<dyn Callback + Send + 'static>;Callback cannot be made into an objectЭ
trait StringAssoc {
fn from_str(s: &str) -> Option<Self>;
fn as_str(&self) -> &'static str;
}
macro_rules! impl_str_assoc {
(enum $enum:ty { $($var:ident = $str:expr ;)* }) => {
impl StringAssoc for $enum {
#[inline]
fn from_str(s: &str) {
match s {
$(
$str => Some(Self::$var),
)*
_ => None,
}
}
#[inline]
fn as_str(&self) -> &'static str {
match self {
$(
Self::$var => $str,
)*
}
}
}
};
}Э
trait Callback: Fn(String, String, serde_json::Value) -> serde_json::Value + Clone {}
type XCallback = Box<dyn Callback + Send + 'static>;Callback cannot be made into an objectClone: Sized, а трейт обжект не сайзед.f
Clone: Sized, а трейт обжект не сайзед.Э
f
f
f
Э
AV
Clone: Sized, а трейт обжект не сайзед.AV
trait Callback: Fn(String, String, serde_json::Value) -> serde_json::Value + Clone {}
type XCallback = Box<dyn Callback + Send + 'static>;Callback cannot be made into an objectЭ
Fn работает по &self, так что тебе не нужен Clone, потому что &T всегда Clone.f
for <'a> &'a Self?AV
f
Э
Э