rs_simple_logging/
serialize.rs

1use 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}