mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-05-06 16:30:13 +02:00
tek_ -> tengri_; reset to v0.1.0; add root reexporter package
This commit is contained in:
parent
70984b4992
commit
d30eda33d1
|
@ -1,6 +1,7 @@
|
|||
[workspace]
|
||||
resolver = "2"
|
||||
members = [
|
||||
"./tengri",
|
||||
"./input",
|
||||
"./output",
|
||||
"./tui",
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
# tengri
|
||||
|
||||
an interface metaframework. currently supports ratatui.
|
18
edn/Cargo.lock
generated
18
edn/Cargo.lock
generated
|
@ -764,28 +764,28 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "tek_edn"
|
||||
name = "tengri_edn"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"clojure-reader",
|
||||
"itertools 0.14.0",
|
||||
"konst",
|
||||
"tek_tui",
|
||||
"tengri_tui",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tek_input"
|
||||
name = "tengri_input"
|
||||
version = "0.2.0"
|
||||
|
||||
[[package]]
|
||||
name = "tek_output"
|
||||
name = "tengri_output"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"tek_edn",
|
||||
"tengri_edn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tek_tui"
|
||||
name = "tengri_tui"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"better-panic",
|
||||
|
@ -793,9 +793,9 @@ dependencies = [
|
|||
"palette",
|
||||
"rand",
|
||||
"ratatui",
|
||||
"tek_edn",
|
||||
"tek_input",
|
||||
"tek_output",
|
||||
"tengri_edn",
|
||||
"tengri_input",
|
||||
"tengri_output",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
[package]
|
||||
name = "tek_edn"
|
||||
edition = "2021"
|
||||
version = "0.1.0"
|
||||
name = "tengri_dsl"
|
||||
edition = "2024"
|
||||
version = "0.1.0"
|
||||
description = "UI metaframework, tiny S-expression-based DSL."
|
||||
|
||||
[dependencies]
|
||||
#clojure-reader = "0.3.0"
|
||||
konst = { version = "0.3.16", features = [ "rust_1_83" ] }
|
||||
konst = { version = "0.3.16", features = [ "rust_1_83" ] }
|
||||
itertools = "0.14.0"
|
||||
thiserror = "2.0"
|
||||
|
||||
|
@ -13,5 +13,5 @@ thiserror = "2.0"
|
|||
default = []
|
||||
|
||||
[dev-dependencies]
|
||||
tek_tui = { path = "../tui" }
|
||||
tengri_tui = { path = "../tui" }
|
||||
proptest = "^1.6.0"
|
||||
|
|
|
@ -6,9 +6,9 @@ but without all the features.
|
|||
|
||||
## usage
|
||||
|
||||
### with `tek_output`
|
||||
### with `tengri_output`
|
||||
|
||||
this is a `tek_output` view layout defined using ket:
|
||||
this is a `tengri_output` view layout defined using ket:
|
||||
|
||||
```edn
|
||||
(bsp/s (fixed/y 2 :toolbar)
|
||||
|
@ -16,9 +16,9 @@ this is a `tek_output` view layout defined using ket:
|
|||
(bsp/s :outputs (bsp/s :inputs (bsp/s :tracks :scenes)))))))
|
||||
```
|
||||
|
||||
### with `tek_input`
|
||||
### with `tengri_input`
|
||||
|
||||
this is a `tek_input` keymap defined using ket:
|
||||
this is a `tengri_input` keymap defined using ket:
|
||||
|
||||
```edn
|
||||
(@u undo 1)
|
||||
|
@ -58,8 +58,8 @@ multi-part/key
|
|||
|
||||
keys are implemented by the underlying subsystem:
|
||||
|
||||
* in `tek_output`, keys are names of layout primitives
|
||||
* in `tek_input`, keys are names of commands
|
||||
* in `tengri_output`, keys are names of layout primitives
|
||||
* in `tengri_input`, keys are names of commands
|
||||
|
||||
### symbols
|
||||
|
||||
|
@ -72,7 +72,7 @@ or entire layout components:
|
|||
```
|
||||
|
||||
symbols that start with `@` represent keybindings.
|
||||
they are parsed in `tek_tui` and look like this:
|
||||
they are parsed in `tengri_tui` and look like this:
|
||||
|
||||
```edn
|
||||
@ctrl-alt-shift-space
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//!
|
||||
//! ```
|
||||
//! let src = include_str!("../test.edn");
|
||||
//! let mut view = tek_edn::TokenIter::new(src);
|
||||
//! let mut view = tengri_edn::TokenIter::new(src);
|
||||
//! assert_eq!(view.0.0, src);
|
||||
//! assert_eq!(view.peek(), view.0.peek())
|
||||
//! ```
|
||||
|
|
|
@ -54,7 +54,7 @@ pub(crate) use std::fmt::Debug;
|
|||
////] {
|
||||
//////let items = Atom::read_all(example)?;
|
||||
//////panic!("{layout:?}");
|
||||
//////let content = <dyn ViewContext<::tek_engine::tui::Tui>>::from(&layout);
|
||||
//////let content = <dyn ViewContext<::tengri_engine::tui::Tui>>::from(&layout);
|
||||
////}
|
||||
//Ok(())
|
||||
//}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
//! with slightly different parsing rules.
|
||||
//! * [Value::Num] is an unsigned integer literal.
|
||||
//!```
|
||||
//! use tek_edn::{*, Value::*};
|
||||
//! use tengri_edn::{*, Value::*};
|
||||
//! let source = include_str!("../test.edn");
|
||||
//! let mut view = TokenIter::new(source);
|
||||
//! assert_eq!(view.peek(), Some(Token {
|
||||
|
|
2
input/Cargo.lock
generated
2
input/Cargo.lock
generated
|
@ -3,5 +3,5 @@
|
|||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "tek_engine"
|
||||
name = "tengri_engine"
|
||||
version = "0.2.0"
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
[package]
|
||||
name = "tek_input"
|
||||
edition = "2021"
|
||||
version = "0.2.0"
|
||||
name = "tengri_input"
|
||||
edition = "2024"
|
||||
version = "0.1.0"
|
||||
description = "UI metaframework, input layer."
|
||||
|
||||
[dependencies]
|
||||
tek_edn = { path = "../edn" }
|
||||
tengri_edn = { optional = true, path = "../edn" }
|
||||
|
||||
[features]
|
||||
edn = [ "tengri_edn" ]
|
||||
|
||||
[dev-dependencies]
|
||||
tek_tui = { path = "../tui" }
|
||||
tengri_tui = { path = "../tui" }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# `tek_engine`
|
||||
# `tengri_engine`
|
||||
|
||||
## rendering
|
||||
|
||||
|
|
6
output/Cargo.lock
generated
6
output/Cargo.lock
generated
|
@ -3,12 +3,12 @@
|
|||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "tek_engine"
|
||||
name = "tengri_engine"
|
||||
version = "0.2.0"
|
||||
|
||||
[[package]]
|
||||
name = "tek_layout"
|
||||
name = "tengri_layout"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"tek_engine",
|
||||
"tengri_engine",
|
||||
]
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
[package]
|
||||
name = "tek_output"
|
||||
edition = "2021"
|
||||
version = "0.2.0"
|
||||
name = "tengri_output"
|
||||
edition = "2024"
|
||||
version = "0.1.0"
|
||||
description = "UI metaframework, output layer."
|
||||
|
||||
[dependencies]
|
||||
tek_edn = { path = "../edn" }
|
||||
tengri_edn = { optional = true, path = "../edn" }
|
||||
|
||||
[features]
|
||||
edn = [ "tengri_edn" ]
|
||||
|
||||
[dev-dependencies]
|
||||
tek_tui = { path = "../tui" }
|
||||
proptest = "^1"
|
||||
tengri_tui = { path = "../tui" }
|
||||
proptest = "^1"
|
||||
proptest-derive = "^0.5.1"
|
||||
|
|
|
@ -15,6 +15,7 @@ mod op_align; pub use self::op_align::*;
|
|||
mod op_bsp; pub use self::op_bsp::*;
|
||||
mod op_transform; pub use self::op_transform::*;
|
||||
mod view; pub use self::view::*;
|
||||
|
||||
pub(crate) use std::marker::PhantomData;
|
||||
pub(crate) use std::error::Error;
|
||||
pub(crate) use ::tek_edn::*;
|
||||
|
@ -22,6 +23,7 @@ pub(crate) use ::tek_edn::*;
|
|||
pub type Usually<T> = Result<T, Box<dyn Error>>;
|
||||
/// Standard optional result type.
|
||||
pub type Perhaps<T> = Result<Option<T>, Box<dyn Error>>;
|
||||
|
||||
#[cfg(test)] #[test] fn test_stub_output () -> Usually<()> {
|
||||
use crate::*;
|
||||
struct TestOutput([u16;4]);
|
||||
|
@ -46,10 +48,12 @@ pub type Perhaps<T> = Result<Option<T>, Box<dyn Error>>;
|
|||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)] #[test] fn test_dimensions () {
|
||||
use crate::*;
|
||||
assert_eq!(Area::center(&[10u16, 10, 20, 20]), [20, 20]);
|
||||
}
|
||||
|
||||
#[cfg(test)] #[test] fn test_layout () -> Usually<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
|
18
tengri/Cargo.toml
Normal file
18
tengri/Cargo.toml
Normal file
|
@ -0,0 +1,18 @@
|
|||
[package]
|
||||
name = "tengri"
|
||||
edition = "2024"
|
||||
version = "0.1.0"
|
||||
description = "UI metaframework."
|
||||
|
||||
[dependencies]
|
||||
tengri_edn = { optional = true, path = "../edn" }
|
||||
tengri_input = { optional = true, path = "../input" }
|
||||
tengri_output = { optional = true, path = "../output" }
|
||||
tengri_tui = { optional = true, path = "../tui" }
|
||||
|
||||
[features]
|
||||
default = [ "input", "output", "tui" ]
|
||||
input = [ "tengri_input" ]
|
||||
output = [ "tengri_output" ]
|
||||
tui = [ "tengri_tui" ]
|
||||
edn = [ "tengri_edn", "tengri_input/edn", "tengri_output/edn", "tengri_tui/edn" ]
|
3
tengri/README.md
Normal file
3
tengri/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# tengri
|
||||
|
||||
an interface metaframework. currently supports ratatui.
|
4
tengri/src/lib.rs
Normal file
4
tengri/src/lib.rs
Normal file
|
@ -0,0 +1,4 @@
|
|||
#[cfg(feature="output")] pub use ::tengri_output as output;
|
||||
#[cfg(feature="input")] pub use ::tengri_input as input;
|
||||
#[cfg(feature="edn")] pub use ::tengri_edn as edn;
|
||||
#[cfg(feature="tui")] pub use ::tengri_tui as tui;
|
|
@ -1,19 +1,22 @@
|
|||
[package]
|
||||
name = "tek_tui"
|
||||
edition = "2021"
|
||||
version = "0.2.0"
|
||||
name = "tengri_tui"
|
||||
edition = "2021"
|
||||
version = "0.1.0"
|
||||
description = "UI metaframework, Ratatui backend."
|
||||
|
||||
[dependencies]
|
||||
palette = { version = "0.7.6", features = [ "random" ] }
|
||||
rand = "0.8.5"
|
||||
crossterm = "0.28.1"
|
||||
ratatui = { version = "0.29.0", features = [ "unstable-widget-ref", "underline-color" ] }
|
||||
palette = { version = "0.7.6", features = [ "random" ] }
|
||||
rand = "0.8.5"
|
||||
crossterm = "0.28.1"
|
||||
ratatui = { version = "0.29.0", features = [ "unstable-widget-ref", "underline-color" ] }
|
||||
better-panic = "0.3.0"
|
||||
konst = { version = "0.3.16", features = [ "rust_1_83" ] }
|
||||
konst = { version = "0.3.16", features = [ "rust_1_83" ] }
|
||||
atomic_float = "1"
|
||||
quanta = "0.12.3"
|
||||
quanta = "0.12.3"
|
||||
|
||||
tek_edn = { path = "../edn" }
|
||||
tek_input = { path = "../input" }
|
||||
tek_output = { path = "../output" }
|
||||
#tek_time = { path = "../time" }
|
||||
tengri_input = { path = "../input" }
|
||||
tengri_output = { path = "../output" }
|
||||
tengri_edn = { optional = true, path = "../edn" }
|
||||
|
||||
[features]
|
||||
edn = [ "tengri_edn", "tengri_input/edn", "tengri_output/edn" ]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# `tek_tui`
|
||||
# `tengri_tui`
|
||||
|
||||
the `Tui` struct (the *engine*) implements the
|
||||
`tek_input::Input` and `tek_output::Output` traits.
|
||||
`tengri_input::Input` and `tengri_output::Output` traits.
|
||||
|
||||
at launch, the `Tui` engine spawns two threads,
|
||||
a **render thread** and an **input thread**. (the
|
||||
|
|
|
@ -14,20 +14,7 @@ impl Demo<Tui> {
|
|||
fn new () -> Self {
|
||||
Self {
|
||||
index: 0,
|
||||
items: vec![
|
||||
//Box::new(tek_sequencer::TransportPlayPauseButton {
|
||||
//_engine: Default::default(),
|
||||
//transport: None,
|
||||
//value: Some(TransportState::Stopped),
|
||||
//focused: true
|
||||
//}),
|
||||
//Box::new(tek_sequencer::TransportPlayPauseButton {
|
||||
//_engine: Default::default(),
|
||||
//transport: None,
|
||||
//value: Some(TransportState::Rolling),
|
||||
//focused: false
|
||||
//}),
|
||||
]
|
||||
items: vec![]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use tek_tui::{*, tek_input::*, tek_output::*};
|
||||
use tek_edn::*;
|
||||
use tengri_tui::{*, tengri_input::*, tengri_output::*};
|
||||
use tengri_edn::*;
|
||||
use std::sync::{Arc, RwLock};
|
||||
use crossterm::event::{*, KeyCode::*};
|
||||
use crate::ratatui::style::Color;
|
||||
|
|
Loading…
Reference in a new issue