Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.
Rust is an elegant language, that is quite different from many other popular languages. For example, instead of using classes and inheritance, Rust has a trait-based system. However I believe, that many programmers new to Rust (including myself) are unfamiliar with common Rust patterns.
In this post, I want to discuss the newtype-pattern, as well as the From and Input traits , which help with conversion between types.
age=lt.13&(student=eq.true|gender=eq.M)&group_by=sum(age),grade,gender&having=min(age)=gt.13&order_by=age.desc,height.asc&page=20&page_size=100&x=123&y=456
into
Query {
filters: [
Filter {
connector: None,
condition: Condition {
left: Column("age"),
equality: LT,
right: Number(13)
},
subfilter: [
Filter {
...