This commit is contained in:
2026-07-31 00:01:41 +02:00
parent fb4d22c5a2
commit ccac73c3c5
7 changed files with 19 additions and 9 deletions
+11 -1
View File
@@ -5,13 +5,14 @@ pub use hypersdk;
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use crate::strategy::StrategyEngineMessage;
use crate::{general::LogKind, strategy::StrategyEngineMessage};
pub mod prelude {
pub use crate::general::*;
pub use crate::server_path;
pub use crate::strategy::*;
pub use crate::terminal::*;
pub use crate::Strategy;
pub use hypersdk;
pub use postcard;
@@ -63,6 +64,15 @@ pub trait Strategy {
send_raw(&map_postcard_err(prelude::postcard::to_allocvec(msg))?).await
}
async fn log(&self, kind: LogKind, name: &str, message: &str) -> tokio::io::Result<()> {
self.send(&prelude::StrategyMessage::Log(prelude::EventLog {
kind,
name: name.to_owned(),
message: message.to_owned(),
}))
.await
}
async fn on_raw(&self, data: &[u8]) -> tokio::io::Result<()> {
match map_postcard_err(postcard::from_bytes(&data))? {
StrategyEngineMessage::Initialize => self.initialize().await,
+2 -2
View File
@@ -15,7 +15,7 @@ pub enum TerminalServerMessage {
PositionsUpdated(Vec<Position>),
// Strategy
StrategyUpdated(Strategy),
StrategyUpdated(StrategyStatus),
// Signals
SignalsUpdated(Vec<SignalStatus>),
@@ -80,7 +80,7 @@ pub enum ItemState {
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Strategy {
pub struct StrategyStatus {
pub strategy: StrategyManifest,
pub mode: Mode,
+2 -2
View File
@@ -1,6 +1,6 @@
use crate::{engine::Engine, store::config::Config};
use pulse_sdk::terminal::{ItemState, Mode, Strategy};
use pulse_sdk::terminal::{ItemState, Mode, StrategyStatus};
use toml::Value;
impl Engine {
@@ -74,7 +74,7 @@ impl Engine {
self.config.lock().await.cooldown = cooldown;
self.terminal_server.broadcast(
pulse_sdk::terminal::TerminalServerMessage::StrategyUpdated(Strategy {
pulse_sdk::terminal::TerminalServerMessage::StrategyUpdated(StrategyStatus {
strategy: self.strategy_engine.strategy.lock().await.manifest.clone(),
mode: Mode::Auto,
+1 -1
View File
@@ -64,7 +64,7 @@ impl TerminalServer {
self.send_to(
id,
pulse_sdk::terminal::TerminalServerMessage::StrategyUpdated(Strategy {
pulse_sdk::terminal::TerminalServerMessage::StrategyUpdated(StrategyStatus {
strategy: engine
.strategy_engine
.strategy
+1 -1
View File
@@ -206,7 +206,7 @@ impl<T: Formatted> Formatted for Vec<T> {
}
}
impl Formatted for Strategy {
impl Formatted for StrategyStatus {
fn get_formatted(&self) -> Vec<String> {
vec![
Triple(
+1 -1
View File
@@ -29,7 +29,7 @@ pub struct PulseTradeApp {
command: State<InputState>,
scroll: State<ScrollState<7>>,
strategy: State<Option<Strategy>>,
strategy: State<Option<StrategyStatus>>,
status: State<Option<Status>>,
watch_list: State<Vec<MarketItem>>,
+1 -1
View File
@@ -82,7 +82,7 @@ impl TerminalClient {
active_positions: State<Vec<Position>>,
logs: State<Vec<EventLog>>,
signals: State<Vec<SignalStatus>>,
market_overview: State<Option<Strategy>>,
market_overview: State<Option<StrategyStatus>>,
status: State<Option<Status>>,
inspect: State<InspectTarget>,
) -> tokio::io::Result<()> {