aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/config/debug.rs
diff options
context:
space:
mode:
authorKirill Chibisov <contact@kchibisov.com>2020-07-11 20:03:09 +0300
committerGitHub <noreply@github.com>2020-07-11 20:03:09 +0300
commit18cf806a27f06185b1ceb2d63f3b9bc2dd3dc80e (patch)
tree6609ca3aec4fe8da171de474a4a8e8d9b572f0e5 /alacritty/src/config/debug.rs
parent5f039cee49b9c817177c6feecc5e7d97fb0a57e1 (diff)
downloadr-alacritty-18cf806a27f06185b1ceb2d63f3b9bc2dd3dc80e.tar.gz
r-alacritty-18cf806a27f06185b1ceb2d63f3b9bc2dd3dc80e.tar.bz2
r-alacritty-18cf806a27f06185b1ceb2d63f3b9bc2dd3dc80e.zip
Remove gui dependencies from alacritty_terminal
This commit removes font dependency from alacritty_terminal, so it'll simplify the usage of alacritty_terminal as a library, since you won't link to system's libraries anymore. It also moves many alacritty related config options from it. Fixes #3393.
Diffstat (limited to 'alacritty/src/config/debug.rs')
-rw-r--r--alacritty/src/config/debug.rs64
1 files changed, 64 insertions, 0 deletions
diff --git a/alacritty/src/config/debug.rs b/alacritty/src/config/debug.rs
new file mode 100644
index 00000000..62de0500
--- /dev/null
+++ b/alacritty/src/config/debug.rs
@@ -0,0 +1,64 @@
+use log::{error, LevelFilter};
+use serde::{Deserialize, Deserializer};
+
+use alacritty_terminal::config::{failure_default, LOG_TARGET_CONFIG};
+
+/// Debugging options.
+#[serde(default)]
+#[derive(Deserialize, Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+pub struct Debug {
+ #[serde(default = "default_log_level", deserialize_with = "deserialize_log_level")]
+ pub log_level: LevelFilter,
+
+ #[serde(deserialize_with = "failure_default")]
+ pub print_events: bool,
+
+ /// Keep the log file after quitting.
+ #[serde(deserialize_with = "failure_default")]
+ pub persistent_logging: bool,
+
+ /// Should show render timer.
+ #[serde(deserialize_with = "failure_default")]
+ pub render_timer: bool,
+
+ /// Record ref test.
+ #[serde(skip)]
+ pub ref_test: bool,
+}
+
+impl Default for Debug {
+ fn default() -> Self {
+ Self {
+ log_level: default_log_level(),
+ print_events: Default::default(),
+ persistent_logging: Default::default(),
+ render_timer: Default::default(),
+ ref_test: Default::default(),
+ }
+ }
+}
+
+fn default_log_level() -> LevelFilter {
+ LevelFilter::Warn
+}
+
+fn deserialize_log_level<'a, D>(deserializer: D) -> Result<LevelFilter, D::Error>
+where
+ D: Deserializer<'a>,
+{
+ Ok(match failure_default::<D, String>(deserializer)?.to_lowercase().as_str() {
+ "off" | "none" => LevelFilter::Off,
+ "error" => LevelFilter::Error,
+ "warn" => LevelFilter::Warn,
+ "info" => LevelFilter::Info,
+ "debug" => LevelFilter::Debug,
+ "trace" => LevelFilter::Trace,
+ level => {
+ error!(
+ target: LOG_TARGET_CONFIG,
+ "Problem with config: invalid log level {}; using level Warn", level
+ );
+ default_log_level()
+ },
+ })
+}