quil/targets/
target.rs

1use super::super::Context;
2use super::super::Level;
3
4/// Structs that implement `Target` can be used with
5/// [`Logger`](struct.Logger.html).
6///
7/// # Examples
8///
9/// An example of a basic target that prints to the console:
10///
11/// ```rust
12/// # use quil::prelude::*;
13/// # use quil::Level;
14/// # use quil::targets::Target;
15/// struct Print;
16///
17/// impl Target for Print {
18///   fn log(&mut self, level: Level, message: &str, context: &Context) {
19///     println!("LEVEL: {}, MSG: {}, CTX: {}", level, message, context);
20///   }
21/// }
22/// ```
23pub trait Target {
24  /// You shouldn't need to call `log` directly. `log` is called by logger
25  /// internally.
26  ///
27  /// Log a message to each target contained within the `TargetSet`.
28  ///
29  /// # Arguments
30  ///
31  /// * `level` - The log level the message is associated with.
32  /// * `message` - The message to log.
33  /// * `context` - The context containing meta data associated with the
34  ///               message.
35  fn log(&mut self, level: Level, message: &str, context: &Context);
36}