Benedikt Peetz
e62febf0f4
Build(Cargo): Add mold as default linker in both profiles
...
I measured the linking times by running `cargo rustc --bin trinitrix --
-Z time-passes`, which resulted in following data:
`ld`:
37.794s to link
`mold`:
21.389s to link
The downside for now is, that this requires to have mold installed to
build trinitrix (The nix flake based direnv already has it) and that
mold only works on linux.
2023-07-24 16:55:57 +02:00
antifallobst
dfeac4662d
Refactor(Events): Changed the `Event` type from a struct to an enum
2023-07-14 00:06:10 +02:00
antifallobst
dd3c765ea2
Refactor(Commands): Moved high level command execution function out of app struct.
...
This refactor was done to prevent borrow checker issues, with the lua bindings
2023-07-13 23:40:17 +02:00
antifallobst
529b869e80
Feat(Commands): Started actual implementation of commands
...
List of added commands:
- Exit
- CommandLineShow
- CommandLineHide
- CyclePlanes
- CyclePlanesRev
- RoomMessageSend
2023-07-13 23:17:35 +02:00
antifallobst
33948164c4
Merge: command-backend -> master
2023-07-13 18:41:08 +02:00
Benedikt Peetz
327450c64b
Feat(command_interface): Add basic lua support
2023-07-12 21:48:51 +02:00
Benedikt Peetz
ef5afcda02
Refactor(events): Split up event handling into multiple files
2023-07-12 21:35:46 +02:00
antifallobst
05d4b4d097
Docs(Commands): Documented the command system
2023-07-10 23:36:54 +02:00
antifallobst
b0c09f9c65
Feat(CommandBackend): Implemented the basic structure of the command handling backend
2023-07-10 22:58:07 +02:00
antifallobst
a30229b763
Fix(treewide): Replaced needless expect statements
2023-07-10 22:10:54 +02:00
antifallobst
ce59c504bd
Fix(UI): Removed unneeded mut statements
2023-07-10 21:28:37 +02:00
Benedikt Peetz
20be391b9e
Style(treewide): Remove unneeded imports
2023-07-10 21:02:01 +02:00
antifallobst
200b9143b3
feature (ui): added a cli panel to contoll the UI similar to what you have when hitting colon in vim
2023-07-10 00:10:51 +02:00
antifallobst
8d6e7c976e
feature (ui): implemented reverse plane cycling using <Shift>+<Tab> as requested in #5
2023-07-09 23:04:59 +02:00
antifallobst
7347d0c4f1
refactor (events): switched back from tui_textarea input events to raw crossterm events
2023-07-09 22:51:57 +02:00
antifallobst
1fa35adae7
fix (ui): fixed rooms scroll out of bounds error and added more detail to 'not supported message like event' view in timeline
2023-07-09 22:05:48 +02:00
antifallobst
3920a3e600
merge (pr): accepted rustfmt pr
2023-07-09 14:47:50 +00:00
Benedikt Peetz
1c43626fad
Build(Cargo): Update `Cargo.lock` and upgrade `Cargo.toml`
2023-07-09 10:09:53 +02:00
Benedikt Peetz
a9f72e34e6
Build(cargo): Remove wildcard version specification in `Cargo.toml`
...
Wildcard version is comparable to selecting a version depending on
the result of a dice roll. What I mean with this is, that the version
will be selected based on what the specific user already has in their
cargo registry. This means that the same codebase will compile
wonderfully on one machine but will fail with weird errors like:
`the trait 'From<crossterm::event::Event>' is not implemented for 'Input'`
on an other one.
Additionally crates.io does not accept crates with a bare wildcard
version requirement for aforementioned reasons.
Lastly using direct versions requirement allows to use `cargo upgrade`
to automatically update these requirements to their highest possible
value, as determined by SemVer. This works especially well, when adding
new dependencies with `cargo add`, as this also adds a direct version
requirement.
2023-07-09 10:09:52 +02:00
Benedikt Peetz
35225a14db
Style(treewide): Format all files with rustfmt
2023-07-09 10:09:50 +02:00
antifallobst
196641959e
Add nix flake ( #6 )
...
merge (nix): Add nix flake (#6 )
2023-07-09 06:30:41 +00:00
Benedikt Peetz
74be1c2506
Build(flake): Also add the openssl dependencies to the devShell
2023-07-09 07:53:15 +02:00
Benedikt Peetz
cc602b25ce
Build(flake): Enable direnv integration
...
[Direnv](1) in combination with some sort of [Nix integration](2)
— in this case [Nix-direnv](3) — allows for reproducible development
environments (and allows uncluttering the default PATH, as cargo and
other development tools are no longer needed in it).
Setting it up is rather easy, just see [Nix-direnv's install
instructions](4).
[1]: https://github.com/direnv/direnv
[2]: https://github.com/direnv/direnv/wiki/Nix
[3]: https://github.com/nix-community/nix-direnv
[4]: https://github.com/nix-community/nix-direnv#installation
2023-07-09 07:28:40 +02:00
Benedikt Peetz
f768d214da
Build(flake): Initialize the flake
...
A nix flake is a reproducible way to describe the building process
to [nix](1).
See [the nix download page](1), on how to install nix. Afterwards
running `nix build` in the repository will result in a successful build.
Flakes and nix-commands are still experimental so they must be enabled
as described in [the corresponding wiki entry](2)
[1]: https://nixos.org/download.html#nix
[2]: https://nixos.wiki/wiki/Flakes#Enable_flakes .
2023-07-09 07:28:19 +02:00
antifallobst
5611d8e385
feature (ui - room info): added basic infos (name & encryption status) to the main ui's 'room info' panel
2023-07-08 23:37:10 +02:00
antifallobst
98f7e806de
feature: (room timeline): Changed timeline view to a scrollable list / Made single messages/events selectable / Implemented Message sending
2023-07-08 23:09:53 +02:00
antifallobst
658f05b8d3
feature (ui - rooms / events): implemented a rooms list area in the UI and live timeline updates on room timeline sync events
2023-07-08 14:45:08 +02:00
antifallobst
f8bf6ee07d
feature (status - rooms): Implemented a timeline event caching layer
2023-07-07 00:52:16 +02:00
antifallobst
1eb04dd23a
feature (UI - main): started work on timeline view implementation
2023-07-06 20:47:06 +02:00
antifallobst
a7e11c6ac0
fix (status): updating status from 'app.init_account()'
2023-07-06 17:34:55 +02:00
antifallobst
b1c0007098
feature (events): added a matrix event listener that writes to the global event stream
2023-07-06 15:13:41 +02:00
antifallobst
dfc87ff937
refactor (architecture): implemented an event based architecture
2023-07-04 18:32:57 +02:00
antifallobst
6ba8d3dbf0
docs (architecture): Added codebase architecture diagram
2023-07-01 22:54:20 +02:00
antifallobst
9fbf112baa
refactor (logger): switched to cli_log
2023-07-01 12:44:11 +02:00
antifallobst
7bd1990eb3
feature (logging): added a logging backend and spreaded a few info log calls over the codebase
2023-06-29 20:17:54 +02:00
antifallobst
7a3bb91ba4
feature (UI - main): built a simple not yet very efficient rendering infrastructure that is capable of cycling through the planes
2023-06-29 16:33:40 +02:00
antifallobst
af7c79ac75
feature (UI): made message compose in main ui a TextArea
2023-06-29 15:13:11 +02:00
antifallobst
82bd751ac8
fix (UI): fixed a bug that caused a panic when cancelling a login process.
2023-06-29 13:30:45 +02:00
antifallobst
aee5b77722
feature (UI): added sample text to homeserver input field in login screen
2023-06-29 13:29:18 +02:00
antifallobst
124406e475
feature (UI): hiding password in login screen
2023-06-29 13:20:38 +02:00
antifallobst
2c894e895e
feature (UI): implemented a login screen
2023-06-29 12:36:16 +02:00
antifallobst
3a88ca38a0
feature (UI): implemented status block
2023-06-23 16:07:18 +02:00
antifallobst
5afb82a7b4
fix (app): fixed something, that somehow didn't merge right
2023-06-23 06:06:49 +02:00
antifallobst
e17a96d34d
Merge remote-tracking branch 'origin/master'
...
# Conflicts:
# src/app/mod.rs
# src/main.rs
2023-06-23 06:00:22 +02:00
antifallobst
6e31c3e7c4
feature (UI): implemented the main UI
2023-06-23 05:41:26 +02:00
antifallobst
c5742e66f4
fix (accounts): caching clients to fix the 'Session IDs were already set' bug
2023-06-18 12:47:15 +02:00
antifallobst
a3cb8b8e20
feature (accounts): implemented an account manager
2023-06-16 00:15:07 +02:00
antifallobst
30e1f4cd6b
feature (accounts): implemented session restoring
2023-06-15 21:57:43 +02:00
antifallobst
e776d8a631
feature (accounts): implemented login with username and password
2023-06-15 19:19:24 +02:00
antifallobst
4b9d06651b
fix (logo): made logo 1:1
2023-06-15 12:16:36 +02:00