elfo_core/dumping/
mod.rs

1//! Includes structs and functions to work with dumping.
2//! For more details see [The Actoromicon](https://actoromicon.rs/ch05-03-dumping.md.html).
3
4use serde::{Serialize, Serializer};
5
6#[cfg(feature = "unstable")] // TODO: patch `stability`, again.
7pub use self::{
8    control::{CheckResult, DumpingControl},
9    dump::{Direction, Dump, ErasedMessage, MessageKind, MessageName, Timestamp},
10    dumper::Dumper,
11    extract_name::{extract_name, extract_name_by_type},
12    raw::Raw,
13    recorder::{set_make_recorder, Recorder},
14    sequence_no::SequenceNo,
15};
16#[cfg(not(feature = "unstable"))] // TODO: patch `stability`, again.
17pub(crate) use self::{
18    control::{CheckResult, DumpingControl},
19    dump::{Direction, Dump, ErasedMessage, MessageKind, MessageName, Timestamp},
20    dumper::Dumper,
21    extract_name::{extract_name, extract_name_by_type},
22    raw::Raw,
23    recorder::{set_make_recorder, Recorder},
24    sequence_no::SequenceNo,
25};
26
27pub(crate) use self::config::DumpingConfig;
28
29#[cfg_attr(docsrs, doc(cfg(feature = "unstable")))]
30#[stability::unstable]
31pub const INTERNAL_CLASS: &str = "internal";
32
33mod config;
34mod control;
35mod dump;
36mod dumper;
37mod extract_name;
38mod raw;
39mod recorder;
40mod sequence_no;
41
42/// Dumps a field as `<hidden>`.
43pub fn hide<T: Serialize, S: Serializer>(value: &T, serializer: S) -> Result<S::Ok, S::Error> {
44    if crate::scope::serde_mode() == crate::scope::SerdeMode::Dumping {
45        serializer.serialize_str("<hidden>")
46    } else {
47        value.serialize(serializer)
48    }
49}