refactor(core): scaffold empty improvise-core sub-crate
Lay the groundwork for Phase B of improvise-36h: a new `crates/improvise-core/` sub-crate that will house the pure-data core (model, view, workbook, format) once the files move in the next commit. Only scaffolding here: - New `crates/improvise-core/Cargo.toml` mirroring improvise-formula's structure; declares deps on improvise-formula, anyhow, indexmap, serde. - New `crates/improvise-core/src/lib.rs` with the single re-export `pub use improvise_formula as formula;` so that in the next commit the moved code's `crate::formula::*` paths resolve unchanged. - Root `Cargo.toml` adds the new crate to the workspace members and the main crate's `[dependencies]`, ready to receive the move. No source files change yet; cargo check --workspace still compiles as before. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
12
Cargo.lock
generated
12
Cargo.lock
generated
@ -737,6 +737,7 @@ dependencies = [
|
|||||||
"dirs",
|
"dirs",
|
||||||
"enum_dispatch",
|
"enum_dispatch",
|
||||||
"flate2",
|
"flate2",
|
||||||
|
"improvise-core",
|
||||||
"improvise-formula",
|
"improvise-formula",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"pest",
|
"pest",
|
||||||
@ -751,6 +752,17 @@ dependencies = [
|
|||||||
"unicode-width",
|
"unicode-width",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "improvise-core"
|
||||||
|
version = "0.1.0-rc2"
|
||||||
|
dependencies = [
|
||||||
|
"anyhow",
|
||||||
|
"improvise-formula",
|
||||||
|
"indexmap",
|
||||||
|
"proptest",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "improvise-formula"
|
name = "improvise-formula"
|
||||||
version = "0.1.0-rc2"
|
version = "0.1.0-rc2"
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
[workspace]
|
[workspace]
|
||||||
members = [".", "crates/improvise-formula"]
|
members = [".", "crates/improvise-formula", "crates/improvise-core"]
|
||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "improvise"
|
name = "improvise"
|
||||||
@ -18,6 +18,7 @@ name = "improvise"
|
|||||||
path = "src/main.rs"
|
path = "src/main.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
improvise-core = { path = "crates/improvise-core" }
|
||||||
improvise-formula = { path = "crates/improvise-formula" }
|
improvise-formula = { path = "crates/improvise-formula" }
|
||||||
ratatui = "0.30"
|
ratatui = "0.30"
|
||||||
crossterm = "0.29"
|
crossterm = "0.29"
|
||||||
|
|||||||
16
crates/improvise-core/Cargo.toml
Normal file
16
crates/improvise-core/Cargo.toml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[package]
|
||||||
|
name = "improvise-core"
|
||||||
|
version = "0.1.0-rc2"
|
||||||
|
edition = "2024"
|
||||||
|
description = "Pure-data model, views, and workbook for improvise"
|
||||||
|
license = "Apache-2.0"
|
||||||
|
repository = "https://github.com/fiddlerwoaroof/improvise"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
improvise-formula = { path = "../improvise-formula" }
|
||||||
|
anyhow = "1"
|
||||||
|
indexmap = { version = "2", features = ["serde"] }
|
||||||
|
serde = { version = "1", features = ["derive"] }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
proptest = "1"
|
||||||
6
crates/improvise-core/src/lib.rs
Normal file
6
crates/improvise-core/src/lib.rs
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
//! Pure-data core of the `improvise` project: `Model`, views, `Workbook`,
|
||||||
|
//! and number formatting. Depends on `improvise-formula` for AST types;
|
||||||
|
//! has no awareness of UI, I/O, or commands.
|
||||||
|
//!
|
||||||
|
//! Scaffolded empty in this commit; the modules land in the next commit.
|
||||||
|
pub use improvise_formula as formula;
|
||||||
Reference in New Issue
Block a user