// I hereby waive this project under the public domain - see UNLICENSE for details. namespace StaggerPost; /// /// Provides debug-only console output methods. /// These methods are only executed when the application is compiled in DEBUG mode. /// internal static class Tracer { /// /// Writes a line of text to the console, but only when in DEBUG mode. /// /// The text to write to the console. [Conditional("DEBUG")] internal static void WriteLine(string content) => Console.WriteLine(content); /// /// Writes text to the console without a newline, but only when in DEBUG mode. /// /// The text to write to the console. [Conditional("DEBUG")] internal static void Write(string content) => Console.Write(content); /// /// Writes multiple lines of text to the console, but only when in DEBUG mode. /// /// A collection of text lines to write to the console. [Conditional("DEBUG")] internal static void WriteLine(IEnumerable contents) { foreach (var content in contents) { Console.WriteLine(content); } } /// /// Writes multiple text entries to the console without newlines, but only when in DEBUG mode. /// /// A collection of text entries to write to the console. [Conditional("DEBUG")] internal static void Write(IEnumerable contents) { foreach (var content in contents) { Console.Write(content); } } /// /// Gets the current working directory in DEBUG mode or the application's base directory in release mode. /// internal static string AppDirectory { get { #if DEBUG return Directory.GetCurrentDirectory(); #else return AppDomain.CurrentDomain.BaseDirectory; #endif } } }