diff options
| author | Mica White <botahamec@outlook.com> | 2024-08-15 20:23:26 -0400 |
|---|---|---|
| committer | Mica White <botahamec@outlook.com> | 2024-08-25 19:24:37 -0400 |
| commit | 509e5ce1e17417a70b9bcce8bc6e33c05106811d (patch) | |
| tree | 5b1fe60a65b5f42a90023ead03c32336033afa1f /console/src | |
| parent | db9aa9f1bf49e8bede384b9ceb1e1fb82b522799 (diff) | |
Start profiling
Diffstat (limited to 'console/src')
| -rw-r--r-- | console/src/lib.rs | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/console/src/lib.rs b/console/src/lib.rs index afab4af..d98183c 100644 --- a/console/src/lib.rs +++ b/console/src/lib.rs @@ -12,6 +12,8 @@ pub struct Console { sender: Sender<ConsoleMessage>, } +pub struct ConsoleLogger(Sender<ConsoleMessage>); + pub enum ConsoleMessage { RuntimeLog { message: String, @@ -25,10 +27,18 @@ pub enum ConsoleMessage { file: String, line: u32, }, + FrameTime { + timestamp: i64, + }, + ScopeStart { + scope_name: String, + timestamp: i64, + }, + ScopeEnd { + timestamp: i64, + }, } -pub struct ConsoleLogger(Sender<ConsoleMessage>); - impl Console { pub async fn new(port: u16) -> Result<Self, std::io::Error> { let tcp_listener = TcpListener::bind((Ipv6Addr::LOCALHOST, port)).await?; @@ -41,7 +51,7 @@ impl Console { }) } - pub fn sender(&self) -> Sender<ConsoleMessage> { + fn sender(&self) -> Sender<ConsoleMessage> { self.sender.clone() } @@ -58,6 +68,7 @@ impl Console { file, line, } => { + let message = message.replace('\n', "\\n"); let msg = format!("runtimelog {level} {file}:{line} {message}\n"); self.tcp_socket.write(msg.as_bytes()).await?; } @@ -67,9 +78,29 @@ impl Console { file, line, } => { + let message = message.replace('\n', "\\n"); let msg = format!("scriptlog {level} {file}:{line} {message}\n"); self.tcp_socket.write(msg.as_bytes()).await?; } + ConsoleMessage::FrameTime { + timestamp: unix_timestamp, + } => { + let msg = format!("frametime {unix_timestamp}"); + self.tcp_socket.write(msg.as_bytes()).await?; + } + ConsoleMessage::ScopeStart { + scope_name, + timestamp: unix_timestamp, + } => { + let msg = format!("scopestart {scope_name} {unix_timestamp}"); + self.tcp_socket.write(msg.as_bytes()).await?; + } + ConsoleMessage::ScopeEnd { + timestamp: unix_timestamp, + } => { + let msg = format!("scopeend {unix_timestamp}"); + self.tcp_socket.write(msg.as_bytes()).await?; + } } } @@ -79,6 +110,12 @@ impl Console { } } +impl ConsoleLogger { + pub fn send(&self, message: ConsoleMessage) { + _ = self.0.send(message).block_on(); + } +} + impl log::Log for ConsoleLogger { fn enabled(&self, _: &log::Metadata) -> bool { true |
