tek_ -> tengri_; reset to v0.1.0; add root reexporter package

This commit is contained in:
🪞👃🪞 2025-03-14 23:39:31 +02:00
parent 70984b4992
commit d30eda33d1
21 changed files with 101 additions and 75 deletions

View file

@ -1,6 +1,7 @@
[workspace]
resolver = "2"
members = [
"./tengri",
"./input",
"./output",
"./tui",

View file

@ -1,3 +0,0 @@
# tengri
an interface metaframework. currently supports ratatui.

1
README.md Symbolic link
View file

@ -0,0 +1 @@
tengri/README.md

18
edn/Cargo.lock generated
View file

@ -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]]

View file

@ -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"

View file

@ -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

View file

@ -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())
//! ```

View file

@ -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(())
//}

View file

@ -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
View file

@ -3,5 +3,5 @@
version = 4
[[package]]
name = "tek_engine"
name = "tengri_engine"
version = "0.2.0"

View file

@ -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" }

View file

@ -1,4 +1,4 @@
# `tek_engine`
# `tengri_engine`
## rendering

6
output/Cargo.lock generated
View file

@ -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",
]

View file

@ -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"

View file

@ -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
View 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
View file

@ -0,0 +1,3 @@
# tengri
an interface metaframework. currently supports ratatui.

4
tengri/src/lib.rs Normal file
View 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;

View file

@ -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" ]

View file

@ -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

View file

@ -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![]
}
}
}

View file

@ -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;