Asking for feedback: Learning rust by building a time tracker

⚓ Rust    📅 2026-01-02    👤 surdeus    👁️ 2      

surdeus

Hi all,

I'm a seasoned C++ developer (mostly in the robotics space) and have started to pick up Rust for a couple months. After initial toy examples I started a rewrite of watson, a command line time tracker. My intention is not to replace the original project with yet another "rewrite in rust". I just use it as a learning experience while still building something that I use on a daily basis at work. Some notes on the implementation:

  • I tried to make it backwards compatible with watson, while abstracting the storage logic away such that I can swap that for something else. I'm thinking of writing a server backend for it for fun.
  • I tried to incorporate as much semantics into the type system as possible. E.g. I used the type state patternwhich I got very excited about as it allows to represent states in the type system of the language.
  • I used LLMs to support my learning experience, but the code is written by hand. Also I already ran cargo clippy over the whole codebase.

I'm looking for overarching feedback on the design and architecture. Especially for rust specific things that I did "the C++ way" instead of the rust way.

Repository: GitHub - fechu/watsup: Time tracker compatible with Watson written in rust as a learning exercise

1 post - 1 participant

Read full topic

🏷️ Rust_feed