]> git.proxmox.com Git - rustc.git/blame - vendor/tracing/tests/support/metadata.rs
New upstream version 1.61.0+dfsg1
[rustc.git] / vendor / tracing / tests / support / metadata.rs
CommitLineData
f035d41b
XL
1use std::fmt;
2use tracing::Metadata;
3
4#[derive(Clone, Debug, Eq, PartialEq, Default)]
5pub struct Expect {
6 pub name: Option<String>,
7 pub level: Option<tracing::Level>,
8 pub target: Option<String>,
9}
10
11impl Expect {
c295e0f8
XL
12 pub(in crate::support) fn check(
13 &self,
14 actual: &Metadata<'_>,
15 ctx: fmt::Arguments<'_>,
16 subscriber_name: &str,
17 ) {
f035d41b
XL
18 if let Some(ref expected_name) = self.name {
19 let name = actual.name();
20 assert!(
21 expected_name == name,
c295e0f8
XL
22 "\n[{}] expected {} to be named `{}`, but got one named `{}`",
23 subscriber_name,
f035d41b
XL
24 ctx,
25 expected_name,
26 name
27 )
28 }
29
30 if let Some(ref expected_level) = self.level {
31 let level = actual.level();
32 assert!(
33 expected_level == level,
c295e0f8
XL
34 "\n[{}] expected {} to be at level `{:?}`, but it was at level `{:?}` instead",
35 subscriber_name,
f035d41b
XL
36 ctx,
37 expected_level,
38 level,
39 )
40 }
41
42 if let Some(ref expected_target) = self.target {
43 let target = actual.target();
44 assert!(
45 expected_target == target,
c295e0f8
XL
46 "\n[{}] expected {} to have target `{}`, but it had target `{}` instead",
47 subscriber_name,
f035d41b
XL
48 ctx,
49 expected_target,
50 target,
51 )
52 }
53 }
54}
55
56impl fmt::Display for Expect {
57 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
58 if let Some(ref name) = self.name {
59 write!(f, " named `{}`", name)?;
60 }
61
62 if let Some(ref level) = self.level {
63 write!(f, " at the `{:?}` level", level)?;
64 }
65
66 if let Some(ref target) = self.target {
67 write!(f, " with target `{}`", target)?;
68 }
69
70 Ok(())
71 }
72}