rs_simple_logging/
serialize.rs1use crate::Item;
2
3pub trait Serialize: Sync + Send {
4 fn serialize(&self, item: &Item, buf: &mut String);
5}
6
7struct FnSer<S> {
8 internal: S,
9}
10
11impl<S> Serialize for FnSer<S>
12where
13 S: Fn(&Item, &mut String) + Sync + Send,
14{
15 fn serialize(&self, item: &Item, buf: &mut String) {
16 (self.internal)(item, buf)
17 }
18}
19
20pub fn serializer_new_from_fn<S>(internal: S) -> impl Serialize
21where
22 S: Fn(&Item, &mut String) + Sync + Send,
23{
24 FnSer { internal }
25}