refactor:
- created dsa_tasks crate for task-specific functionality that doesn't belong in common.
This commit is contained in:
Generated
+2
@@ -9,6 +9,8 @@
|
||||
<sourceFolder url="file://$MODULE_DIR$/emulator/dsa_gui/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/libraries/common/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/libraries/dsa_formats/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/libraries/dsa_tasks/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/libraries/zxq5_egui/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/tooling/assembler/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/tooling/compiler/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/tooling/disassembler/src" isTestSource="false" />
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ members = [
|
||||
"emulator/dsa_emulator", "emulator/dsa_gui", "emulator/dsa_cli",
|
||||
"libraries/common", "libraries/dsa_formats",
|
||||
"tooling/assembler", "tooling/disassembler", "tooling/linker", "tooling/compiler",
|
||||
"tooling/dsx_build", "tooling/dsx_server", "tooling/dsx_client"]
|
||||
"tooling/dsx_build", "tooling/dsx_server", "tooling/dsx_client", "libraries/dsa_tasks", "libraries/zxq5_egui"]
|
||||
|
||||
resolver = "3"
|
||||
|
||||
|
||||
@@ -15,6 +15,9 @@ path = "src/lib.rs"
|
||||
[dependencies]
|
||||
common = { path = "../../libraries/common" }
|
||||
dsa_formats = { path = "../../libraries/dsa_formats" }
|
||||
dsa_tasks = { path = "../../libraries/dsa_tasks" }
|
||||
|
||||
zxq5_egui = { path = "../../libraries/zxq5_egui" }
|
||||
assembler = { path = "../../tooling/assembler" }
|
||||
dsa_emulator = { version = "0.3.0", path = "../dsa_emulator" }
|
||||
disassembler = { version = "0.3.0", path = "../../tooling/disassembler" }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use crate::state::Action;
|
||||
use crate::ui::ui_helpers::text::strip_ansi;
|
||||
use crate::ui::ui_helpers::painted_tab;
|
||||
use common::process::{ProcessAgent, TraceableProcess};
|
||||
use crate::ui::ui_helpers::text::strip_ansi;
|
||||
use dsa_tasks::{ProcessAgent, TraceableProcess};
|
||||
use std::collections::VecDeque;
|
||||
use std::sync::mpsc;
|
||||
use std::thread::JoinHandle;
|
||||
|
||||
@@ -4,8 +4,8 @@ use crate::ui::tiles::TilePane;
|
||||
use crate::ui::tiles::editor::syntax::SyntaxFrom;
|
||||
use crate::ui::ui_helpers::PaddedWidget;
|
||||
use assembler::prelude::Assembler;
|
||||
use common::process::TraceableProcess;
|
||||
use dsa_formats::binary_dse::DseExecutable;
|
||||
use dsa_tasks::TraceableProcess;
|
||||
use egui::{Color32, Key, Ui, Widget};
|
||||
use egui_code_editor::{CodeEditor, Completer, Syntax};
|
||||
use egui_tiles::TileId;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
pub mod asm;
|
||||
pub mod isa;
|
||||
pub mod process;
|
||||
|
||||
pub mod prelude {
|
||||
pub use crate::isa::instructions::Instruction;
|
||||
pub use crate::isa::register::Register;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
[package]
|
||||
name = "dsa_tasks"
|
||||
edition.workspace = true
|
||||
version.workspace = true
|
||||
authors.workspace = true
|
||||
|
||||
[dependencies]
|
||||
@@ -1,7 +1,6 @@
|
||||
use std::fmt::Debug;
|
||||
use std::sync::{mpsc, Arc};
|
||||
use crate::process::AgentSink::{Callback, Channel};
|
||||
|
||||
use std::sync::{Arc, mpsc};
|
||||
use crate::AgentSink::{Callback, Channel};
|
||||
|
||||
pub struct ProcessAgent {
|
||||
sink: Arc<AgentSink>,
|
||||
@@ -25,7 +24,7 @@ impl ProcessAgent {
|
||||
}
|
||||
}
|
||||
|
||||
enum AgentSink {
|
||||
pub enum AgentSink {
|
||||
Channel(mpsc::Sender<String>),
|
||||
Callback(Box<dyn Fn(&str) + Send + Sync>)
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
[package]
|
||||
name = "zxq5_egui"
|
||||
edition.workspace = true
|
||||
version.workspace = true
|
||||
authors.workspace = true
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
# zxq5_egui
|
||||
A set of UI components for the egui UI framework that may be useful across all of my personal projects.
|
||||
|
||||
## Features
|
||||
- buttons & labels styled to my personal liking, meant to achieve a clean modern look.
|
||||
|
||||
## TODO:
|
||||
- File-tree for viewing files within a directory and performing simple directory operations from within the project.
|
||||
- this will be useful for the DSA user interface and maybe for Worldcoder if I revive that project in the future.
|
||||
@@ -0,0 +1,2 @@
|
||||
pub mod buttons;
|
||||
pub mod tabs;
|
||||
@@ -16,6 +16,7 @@ path = "src/lib.rs"
|
||||
clap = { version = "4.6.0", features = ["derive"] }
|
||||
common = { path = "../../libraries/common" }
|
||||
dsa_formats = { path = "../../libraries/dsa_formats" }
|
||||
dsa_tasks = { path = "../../libraries/dsa_tasks" }
|
||||
|
||||
num_cpus = "1.17.0"
|
||||
strum = { version = "0.28.0", features = ["derive"] }
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
use common::prelude::*;
|
||||
use common::process::ProcessAgent;
|
||||
use crate::assembler::Token;
|
||||
use crate::assembler::model::{Node, Opcode};
|
||||
use crate::{assembler::AssembleError, expect_token};
|
||||
use common::prelude::*;
|
||||
use dsa_tasks::ProcessAgent;
|
||||
|
||||
pub fn codegen(nodes: Vec<Node>, ctx: &ProcessAgent) -> Result<Vec<Instruction>, AssembleError> {
|
||||
let mut instructions = vec![];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#![allow(dead_code, unused)]
|
||||
|
||||
use dsa_tasks::{ProcessAgent, TraceableProcess};
|
||||
use crate::assembler::resolver2::{SectionId, resolve_address, resolve_dependencies, resolve_symbols, split_sections};
|
||||
use common::process::{ProcessAgent, TraceableProcess};
|
||||
use dsa_formats::binary_dse::{DseExecutable, SymbolEntry};
|
||||
use std::{
|
||||
collections::HashSet,
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
use assembler::prelude::*;
|
||||
use clap::{Parser, arg};
|
||||
use std::{fs, path::PathBuf};
|
||||
use dsa_tasks::TraceableProcess;
|
||||
use std::io::Cursor;
|
||||
use assembler::assembler::AssembleError;
|
||||
use common::process::TraceableProcess;
|
||||
use std::{fs, path::PathBuf};
|
||||
|
||||
#[derive(Parser, Debug, Clone)]
|
||||
#[command(version, about, long_about = None)]
|
||||
|
||||
Reference in New Issue
Block a user