summaryrefslogtreecommitdiff
path: root/console/src
diff options
context:
space:
mode:
authorMica White <botahamec@outlook.com>2024-08-15 20:23:26 -0400
committerMica White <botahamec@outlook.com>2024-08-25 19:24:37 -0400
commit509e5ce1e17417a70b9bcce8bc6e33c05106811d (patch)
tree5b1fe60a65b5f42a90023ead03c32336033afa1f /console/src
parentdb9aa9f1bf49e8bede384b9ceb1e1fb82b522799 (diff)
Start profiling
Diffstat (limited to 'console/src')
-rw-r--r--console/src/lib.rs43
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