Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First attempt at basic axum-style state management #138

Open
wants to merge 236 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
ac469e7
Additional type fixups, handling of legacy cache item
TTWNO Apr 21, 2024
eac59eb
Desugar AFIT for send bounds enforcement
TTWNO Apr 21, 2024
11e1c28
children_num i32 -> usize
TTWNO Apr 22, 2024
b2522e1
Re-add old text interfaces to cache
TTWNO Apr 22, 2024
00244c5
i32 -> usize for string positioning
TTWNO Apr 22, 2024
83df5ac
Add clippy exceptions for cache crate
TTWNO Apr 22, 2024
2c24792
Fix clippy issues
TTWNO Apr 22, 2024
a6cf72e
Fix test compiles
TTWNO Apr 22, 2024
af3766c
Fix deps
TTWNO Apr 26, 2024
4dc666f
Remove the old code in state
TTWNO Apr 26, 2024
bcc54e1
Fix tests
TTWNO Apr 26, 2024
6592710
formatting
TTWNO Apr 26, 2024
371145e
Various cleanups
TTWNO May 8, 2024
e0a9830
Change debug level, and use question mark syntax
TTWNO May 8, 2024
f8f0849
Remove unused trait
TTWNO May 8, 2024
40300f7
Remove unused dep
TTWNO May 8, 2024
dd20e58
Remove config from state as it is unused
TTWNO May 8, 2024
15363e0
Thank clippy for its service
TTWNO May 8, 2024
cbbc034
Update notify for latest atspi
TTWNO May 8, 2024
94ecfc4
Remove atspi-client from deps
TTWNO May 13, 2024
5dce87c
Remove atspi-client from deps
TTWNO May 13, 2024
cf5bf16
Update to latest traits
TTWNO May 13, 2024
d627688
Upgrade to new atspi traits
TTWNO May 23, 2024
66a9734
Update cargo lock
TTWNO May 23, 2024
0bf03de
Fix test message building
TTWNO May 24, 2024
ec98d6a
default_features -> default-features
TTWNO May 24, 2024
831afee
Fix doc issues
TTWNO May 24, 2024
7c6c8e1
fmt
TTWNO May 24, 2024
c565bd6
Update to use live version of atspi
TTWNO May 24, 2024
3f0dc6e
Remove unused feature
TTWNO May 24, 2024
aaf214d
Merge branch 'main' into update-atspi-v0.22.0
TTWNO May 24, 2024
2562501
Remove unused deps
TTWNO May 24, 2024
910d537
fmt
TTWNO May 24, 2024
b8e1ea3
First attempt at basic axum-style state management
TTWNO Mar 11, 2024
2cb5890
Implement generic first parameters for Handler
TTWNO Mar 21, 2024
3959c61
[WIP] add handlers struct
TTWNO Mar 21, 2024
dbe8115
[WIP] attempt service-based event extractors
TTWNO Mar 28, 2024
8b3e5fe
[WIP] Use layers to compose services instead of chaining services wit…
TTWNO Mar 28, 2024
9412cbd
You can now add boxed event handlers to the handler list
TTWNO Mar 28, 2024
664adde
[WIP] remove Filter functions
TTWNO Apr 1, 2024
d194774
[WIP] cargo format
TTWNO Apr 1, 2024
752585d
[WIP] tower reader
TTWNO Apr 1, 2024
36d0fc3
[WIP] run all events handlers bound to a particular event
TTWNO Apr 3, 2024
472fcf2
[WIP] first use of tower-based Odilia
TTWNO Apr 5, 2024
388a645
Cargo format
TTWNO Apr 5, 2024
e4a7452
[WIP] update SSIP, add speech to certain events
TTWNO Apr 5, 2024
7297f60
[WIP] return set of commands, instead of unit
TTWNO Apr 5, 2024
403d547
[WIP] await all futures for an ev type in serial
TTWNO Apr 6, 2024
9ce2640
[WIP] Add commands enum
TTWNO Apr 6, 2024
083cf42
Make Handler trait generic over response type
TTWNO Apr 7, 2024
01417e2
Add command handler implementations
TTWNO Apr 7, 2024
ec258ae
add_listener -> atspi_listener
TTWNO Apr 7, 2024
27716e5
[WIP] working on serial futures
TTWNO Apr 15, 2024
88257ba
[WIP] finished and implemented serial futures, MultiService
TTWNO Apr 15, 2024
bd2c186
[WIP] remove multiservice
TTWNO Apr 15, 2024
c0ee5f8
[WIP] SerialHandlers use concrete type
TTWNO Apr 15, 2024
c424949
[WIP] handle sequential futures better
TTWNO Apr 16, 2024
cfbc6c9
[WIP] using boxes, get further ahead
TTWNO Apr 17, 2024
90fc84d
Update interfaces in accordance with new atspi version
TTWNO May 24, 2024
4df9055
Use event introspection
TTWNO May 28, 2024
ed7480b
Fix loop that never terminates; clone for now
TTWNO May 28, 2024
d765171
Expand command handler impls to 3 params
TTWNO May 28, 2024
660a2a7
Add new command introspection path
TTWNO May 28, 2024
8b1e60f
Add command_handlers function
TTWNO May 28, 2024
2a49f11
Update cargo lock
TTWNO May 28, 2024
b45c421
Use discriminants instead of random strings
TTWNO May 28, 2024
afbf5d6
Add SendError type from tokio; you need the 'tokio' feature enabled t…
TTWNO May 28, 2024
31c1304
Add static str error type
TTWNO May 28, 2024
dfc0038
Change trait bounds to allow any Command: TryInto<C>
TTWNO May 28, 2024
b71a515
fmt
TTWNO May 28, 2024
3d0df1c
Remove unused deps that are now in common
TTWNO May 28, 2024
ca695d2
Use the tokio feature for common so that we can access extra error ty…
TTWNO May 28, 2024
387f759
Update cargo lock
TTWNO May 28, 2024
55a0c3e
Create one and exactly one handler function for the command speak
TTWNO May 28, 2024
bd884af
Pass commands from handlers to command handlers with error handling; …
TTWNO May 28, 2024
d5da8c5
Remove Speech var from doc_loaded func
TTWNO May 29, 2024
382b48e
Add IntoCommands trait, and implement it for a tuple up to three
TTWNO May 29, 2024
15d6d58
Use IntoCommands trait to bound response types
TTWNO May 29, 2024
4de6535
Fmt
TTWNO May 29, 2024
2968527
Add IntoCommands impl for Results which contain other Into<Command> i…
TTWNO May 29, 2024
9193014
Use R instead of Response alias
TTWNO May 29, 2024
6ec532e
Add From<&str> for OdiliaCommand
TTWNO May 29, 2024
23a0229
Add change_priority to command handlers
TTWNO May 29, 2024
fff4d4b
Add TryIntoCommands
TTWNO May 31, 2024
776dffe
Rework trait bounds for additional flexibility
TTWNO May 31, 2024
9003681
fmt
TTWNO May 31, 2024
b4ddfdb
Use IntoCommands more recursively
TTWNO May 31, 2024
08904d0
Use 'impl TryIntoCommand' for return type of event processor :)
TTWNO May 31, 2024
c88bef8
Cleanup uncommented code
TTWNO May 31, 2024
0dd0e52
Remove println
TTWNO May 31, 2024
1e1bde3
Add more specific timing to logs
TTWNO Jun 4, 2024
787ae24
Remove speech priority individual event
TTWNO Jun 4, 2024
49f0a07
fmt
TTWNO Jun 4, 2024
599f7ea
Add microsecond logtime
TTWNO Jun 4, 2024
411036f
Enable experimental features, remove SpeechPriority handler
TTWNO Jun 4, 2024
a5baa0e
Add Speech(SsipClientAsync) AsyncTryFrom impl for state
TTWNO Jun 4, 2024
3633835
Exapnd tower traits
TTWNO Jun 4, 2024
840090d
Remove failure case for AccessiblePrimitive::from_event
TTWNO Jun 6, 2024
d90b380
Remove use of ? in now infallible from_event
TTWNO Jun 6, 2024
24abad3
same as last commit but on state
TTWNO Jun 6, 2024
e686b23
Update benchmarks to work on latest atspi
TTWNO Jun 6, 2024
b72cd8c
Fix structure of caching fns
TTWNO Jun 7, 2024
a84a018
Adjust to new cache fn style
TTWNO Jun 7, 2024
828886f
Add caching, AsyncTryInto layer
TTWNO Jun 7, 2024
1f8a8a7
fmt ignore
TTWNO Jun 7, 2024
7f1bd3d
ItemEvent -> CacheEvent
TTWNO Jun 7, 2024
070c20d
Make fields public for CacheEvent<E>
TTWNO Jun 9, 2024
3d596ef
minor type fixup
TTWNO Jun 10, 2024
8eb543c
Use dbus if no cache available for relation
TTWNO Jun 10, 2024
8bda6cd
reorder imports
TTWNO Jun 10, 2024
6cff332
Macroify the complex trait definitions
TTWNO Jun 10, 2024
4be40b1
Use more flexible join! macro instead of join*()
TTWNO Jun 10, 2024
6d1e2f0
Update tower sub-module and split into various files
TTWNO Jun 10, 2024
0d805da
Remove unused import
TTWNO Jun 10, 2024
6bb5a65
Bring TryIntoLayer/Service into its own file
TTWNO Jun 10, 2024
cdd57a8
fmt
TTWNO Jun 10, 2024
d1e392f
Clippy fixups
TTWNO Jun 10, 2024
171b212
More clippy fixups and naming things right
TTWNO Jun 10, 2024
9814e8e
Further split Handler trait and impl from Handlers struct
TTWNO Jun 10, 2024
fbcab28
[WIP] rethinking the handler trait
TTWNO Jun 11, 2024
88fc15e
[WIP] add desired layer layout
TTWNO Jun 11, 2024
e31e387
Rework Handler function to be much more generic
TTWNO Jun 13, 2024
cc9ae62
More generic-aware AsyncTry, auto impl for TryFromState
TTWNO Jun 13, 2024
18f9c0b
Genericise from_state, clone all over; remove macro for now
TTWNO Jun 13, 2024
3bfe63e
Genericize state service
TTWNO Jun 13, 2024
a175be3
Use new, less strict traits: require more trait bounds on *_listener …
TTWNO Jun 13, 2024
a9ebe2e
Add TryFromState impls, Command<C> type
TTWNO Jun 13, 2024
f68ab1b
Use new types in handlers, import new traits
TTWNO Jun 13, 2024
d95f393
Remove unbounded channels
TTWNO Jun 13, 2024
d203cb8
Remove source of possible deadlock?
TTWNO Jun 13, 2024
2159ad0
Remove .await where it is no longer needed
TTWNO Jun 13, 2024
64176ba
Add futures-concurency crate
TTWNO Jun 13, 2024
f4261a1
Update cargo lock
TTWNO Jun 13, 2024
7e132d0
Re-asyncify the sending
TTWNO Jun 13, 2024
3b138df
Clippy suggestions
TTWNO Jun 13, 2024
802a852
Fmt
TTWNO Jun 13, 2024
707c648
Remove cache layer
TTWNO Jun 13, 2024
4f84d0c
Remove CacheProvier trait
TTWNO Jun 13, 2024
43f84c5
Remove FromState in favour of TryFromState
TTWNO Jun 13, 2024
7fd7045
Remove unused type def
TTWNO Jun 13, 2024
9d9a96a
Removed unused imports
TTWNO Jun 13, 2024
e8b4fc0
Remove unused vars
TTWNO Jun 13, 2024
b51a257
Remove explicit () return type and body
TTWNO Jun 13, 2024
73760b7
Non-automatic clippy fixups
TTWNO Jun 13, 2024
19f9e1a
Merge branch 'main' into axum-style-handlers
TTWNO Jun 13, 2024
91e0d20
Fix mismatching deps
TTWNO Jun 13, 2024
cb7d3a7
Update logging
TTWNO Jun 13, 2024
4cf4165
fmt
TTWNO Jun 13, 2024
97f4703
Remove try_trait_v2 feature
TTWNO Jun 13, 2024
6d454ef
Remove unused code
TTWNO Jun 13, 2024
6feed36
Add Clone impls for various services
TTWNO Jun 16, 2024
833da4a
BoxService -> BoxCloneService
TTWNO Jun 16, 2024
d8ac7e9
fmt
TTWNO Jun 17, 2024
8e6165a
Remove unused SerialFuture set
TTWNO Jun 17, 2024
b63aba3
Add IterService and ServieSet
TTWNO Jun 17, 2024
a4da07b
Remove serial_fut module
TTWNO Jun 17, 2024
234153f
DO NOT PRINT THE CACHE!
TTWNO Jun 17, 2024
27f0209
Instead of not printing the cache, just make the debug output not so …
TTWNO Jun 17, 2024
9652be0
Do not debug param of function that uses zbus::Connection
TTWNO Jun 17, 2024
221d8c6
Modify ServiceSet in accordance with real-world usage
TTWNO Jun 17, 2024
e4b7e8d
Remove unused function, use new ServiceSet for event handlers
TTWNO Jun 17, 2024
82479f2
fmt
TTWNO Jun 17, 2024
94a6bba
User ServiceSet
TTWNO Jun 17, 2024
c657d67
Cleanup unused imports and remember mem::replace on cloned services
TTWNO Jun 17, 2024
429d07f
Add ChoiceService
TTWNO Jun 17, 2024
f2858e2
Add ServiceNotFound error type
TTWNO Jun 17, 2024
8e2b7b5
fmt
TTWNO Jun 17, 2024
d57c206
Use more convenience functions
TTWNO Jun 17, 2024
709cbb7
Update deps to latest zbus, seems to fix a deadlock issue
TTWNO Jun 17, 2024
581a3f0
Add tokio-console capability, add script for conveneicne
TTWNO Jun 17, 2024
beb33e6
Add tokio-console feature to main odilia binary
TTWNO Jun 17, 2024
81f1d1c
Cleanups and new inner services
TTWNO Jun 17, 2024
ee628c3
Move to mutli-threaded runtime; add channel indirection on zbus messages
TTWNO Jun 17, 2024
8a052c0
Add comments explaining channel redirection
TTWNO Jun 17, 2024
327a069
Create CacheEvent from state + E (event)
TTWNO Jun 17, 2024
a810f53
Add clone for choice service
TTWNO Jun 17, 2024
874506a
public new function in IterService
TTWNO Jun 17, 2024
6269b56
Use command sub-service to layer atspi responses
TTWNO Jun 17, 2024
587976c
Use futures-concurrency as workspace package, add rt-multi-thread fea…
TTWNO Jun 17, 2024
334fc2b
Stop using channels to communicate commands
TTWNO Jun 17, 2024
6dceede
Add instrumenting on try_from_state
TTWNO Jun 17, 2024
1a716af
Add caret_moved handler (which does not work due to no focus being re…
TTWNO Jun 17, 2024
91eaa6a
Various improvements to common
TTWNO Jun 18, 2024
6e965ee
Remove AccessiblePrimitive from cache
TTWNO Jun 18, 2024
44f8fb7
Add tracing option to common, make atspi-proxies a dep
TTWNO Jun 18, 2024
49dcb02
Update AccessiblePrimitive location
TTWNO Jun 18, 2024
e7c1165
Add AccessibleHistory and CurrentCaretPos state structs
TTWNO Jun 18, 2024
b65260c
Add focus changed and caret pos updater handlers
TTWNO Jun 18, 2024
8bdcdf7
Update cargo lock
TTWNO Jun 18, 2024
f08d9fe
Speak entire item upon focus
TTWNO Jun 18, 2024
beacfe2
Add ability to unwrap Infallible values, then map them
TTWNO Jun 18, 2024
55edb3d
Add new ServiceExt API for DX
TTWNO Jun 18, 2024
2dc1257
Use new Odilia-specific ServiceExt
TTWNO Jun 18, 2024
9ce4a00
Remove return type generic on HandlerService
TTWNO Jun 18, 2024
9abc9ed
Remove unused imports
TTWNO Jun 18, 2024
2df29ab
fmt
TTWNO Jun 19, 2024
c86d61c
Add iter_into combinator
TTWNO Jun 19, 2024
dd45acd
Add static version of Chooser trait
TTWNO Jun 19, 2024
aa0b506
Use ChooserStatic trait, iter_into combinator
TTWNO Jun 19, 2024
e253e2b
Use boxed_clone combinator
TTWNO Jun 20, 2024
f68f0f7
Fix docs
TTWNO Jun 20, 2024
686bd11
Add nightly to CI temporarily
TTWNO Jun 20, 2024
8e75f09
Use dtolnay instead of actions-rs actions
TTWNO Jun 20, 2024
93d8bb1
Fix test which had a bad import
TTWNO Jun 20, 2024
48d0f61
fmt
TTWNO Jun 20, 2024
05cc78f
Adjust clippy lints
TTWNO Jun 20, 2024
90a07d4
Fix some other CI issues with old versions of actions-rs
TTWNO Jun 20, 2024
bfc07ab
Fix notify private documentation
TTWNO Jun 20, 2024
1466d14
Fix type in CI
TTWNO Jun 20, 2024
0239169
Add clippy component for clippy job
TTWNO Jun 20, 2024
c5c1fbf
Make sure llvm-tools are installed for the coverage components
TTWNO Jun 20, 2024
551561f
Setup nightly MSRV
TTWNO Jun 20, 2024
f227f5e
Fix yaml error
TTWNO Jun 20, 2024
3967432
Add StateChanged newtype with predicate trait implementations
TTWNO Jun 26, 2024
5882697
Add new error for predicate failure
TTWNO Jun 26, 2024
31e6a72
Add the refinement crate for additional types, and derived-deref for …
TTWNO Jun 26, 2024
694adba
fmt
TTWNO Jun 26, 2024
1fa8224
Add state_changed crate to tower subcrate
TTWNO Jun 26, 2024
3d5c9db
fmt
TTWNO Jun 26, 2024
de67721
Add TODO on error variant
TTWNO Jun 26, 2024
ef76cf6
Add focused/unfocused handlers using new StateChanged<S, E> type
TTWNO Jun 26, 2024
c69f9da
Update lock file
TTWNO Jun 26, 2024
9d05d11
Use latest atspi branch in object handlers
TTWNO Jun 26, 2024
dbde75e
Fix bench imports
TTWNO Jun 27, 2024
cbd80ab
Update dashmap and use inlining for about a 10% speed improvement; te…
TTWNO Jun 27, 2024
abfb9d9
Fix formatting
TTWNO Jun 27, 2024
e36b569
Add more type aliases for simplicity
TTWNO Jun 27, 2024
12d4897
Use enabled field as bool
TTWNO Jun 27, 2024
8e61371
Use bool as predicate for state changed instead of i32
TTWNO Jun 27, 2024
60f834c
Rename predicates
TTWNO Jun 27, 2024
83a95c6
Use deref on CacheEvent
TTWNO Jun 27, 2024
3e4514e
Use specific Focused/Unfocused types
TTWNO Jun 27, 2024
b82789e
Move CacheEvent into its own file; move Choice impls into choice
TTWNO Jun 28, 2024
6512db9
Add CacheEvent<E> types
TTWNO Jul 1, 2024
4a0171f
Remove TryFromState for CacheEvent<E> from state
TTWNO Jul 1, 2024
cedfdb4
Use bleeding-edge atspi
TTWNO Jul 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 17 additions & 22 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ jobs:
${{ runner.os }}-${{ matrix.target }}-build-${{ env.cache-name }}-

- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
toolchain: nightly
target: ${{ matrix.target }}

- name: Install Dependencies
Expand Down Expand Up @@ -68,16 +68,13 @@ jobs:
${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-

- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
toolchain: nightly
components: clippy

- name: Run tests
uses: actions-rs/cargo@v1
with:
command: clippy
# "-- -D warnings" will make the job fail if their are clippy warnings
args: --workspace --no-deps -- -D warnings -W clippy::print_stdout
run: cargo clippy --tests --workspace --no-deps -- -D warnings

rustfmt:
runs-on: ubuntu-latest
Expand All @@ -86,17 +83,14 @@ jobs:
uses: actions/checkout@v3

- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
profile: minimal
toolchain: stable
toolchain: nightly
components: rustfmt

- name: Run formatter
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all --check
run: cargo fmt --all --check

rustdoc:
runs-on: ubuntu-latest
Expand All @@ -119,14 +113,12 @@ jobs:
${{ runner.os }}-x86_64-unknown-linux-gnu-build-${{ env.cache-name }}-

- name: Install Rust
uses: actions-rs/toolchain@v1
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
toolchain: nightly

- name: Generate Documentation
uses: actions-rs/cargo@v1
with:
command: doc
run: cargo doc --workspace --document-private-items

- name: Deploy Documentation
uses: peaceiris/actions-gh-pages@v3
Expand Down Expand Up @@ -159,7 +151,10 @@ jobs:
restore-keys: |
${{ runner.os }}-${{ matrix.target }}-build-${{ env.cache-name }}-
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: llvm-tools
- name: cargo install llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: cargo generate lockfile
Expand Down Expand Up @@ -199,7 +194,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
toolchain: nightly
- name: Install Cargo MSRV Verifier
run: cargo install cargo-msrv --force
- name: Check MSRV Compliance
Expand Down
Loading
Loading