task_local context over context objects

- interner impls logically separate from API in orchid-base (default host interner still in base for testing)
- error reporting, logging, and a variety of other features passed down via context in extension, not yet in host to maintain library-ish profile, should consider options
- no global spawn mechanic, the host has a spawn function but extensions only get a stash for enqueuing async work in sync callbacks which is then explicitly, manually, and with strict order popped and awaited
- still deadlocks nondeterministically for some ungodly reason
This commit is contained in:
2026-01-01 14:54:29 +00:00
parent 06debb3636
commit 32d6237dc5
92 changed files with 2507 additions and 2223 deletions

6
Cargo.lock generated
View File

@@ -1011,6 +1011,7 @@ dependencies = [
"orchid-api-traits",
"ordered-float",
"test_executors 0.3.5",
"unsync-pipe",
]
[[package]]
@@ -1028,7 +1029,6 @@ dependencies = [
name = "orchid-api-traits"
version = "0.1.0"
dependencies = [
"async-fn-stream",
"futures",
"itertools",
"never",
@@ -1056,8 +1056,8 @@ dependencies = [
"ordered-float",
"regex",
"rust-embed",
"some_executor",
"substack",
"task-local",
"test_executors 0.4.0",
"trait-set",
"unsync-pipe",
@@ -1069,6 +1069,7 @@ version = "0.1.0"
dependencies = [
"async-fn-stream",
"async-once-cell",
"bound",
"derive_destructure",
"dyn-clone",
"futures",
@@ -1087,7 +1088,6 @@ dependencies = [
"orchid-base",
"ordered-float",
"pastey",
"some_executor",
"substack",
"task-local",
"tokio",