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