Anki/rslib
Damien Elmes 59ccfe5918 more search bikeshedding
While implementing the overdue search, I realised it would be nice to
be able to construct a search string with OR and NOT searches without
having to construct each part individually with build_search_string().

Changes:

- Extends SearchTerm to support a text search, which will be parsed
by the backend. This allows us to do things like wrap text in a group
or NOT node.
- Because SearchTerm->Node conversion can now fail with a parsing error,
it's switched over to TryFrom
- Switch concatenate_searches and replace_search_term to use SearchTerms,
so that they too don't require separate string building steps.
- Remove the unused normalize_search()
- Remove negate_search, as this is now an operation on a Node, and
users can wrap their search in SearchTerm(negated=...)
- Remove the match_any and negate args from build_search_string

Having done all this work, I've just realised that perhaps the original
JSON idea was more feasible than I first thought - if we wrote it out
to a string and re-parsed it, we would be able to leverage the existing
checks that occur at parsing stage.
2021-02-11 17:11:17 +10:00
..
.cargo initial Bazel conversion 2020-11-01 14:26:58 +10:00
build NF: add AGPL licence missing in some file 2021-01-31 21:50:21 +01:00
cargo render deck description with markdown; strip images 2021-02-06 15:02:40 +10:00
src more search bikeshedding 2021-02-11 17:11:17 +10:00
templates migrate card stats to backend 2020-06-15 17:22:16 +10:00
tests/support initial Bazel conversion 2020-11-01 14:26:58 +10:00
.clang-format add .clang-format so VS Code preserves formatting style on .proto save 2021-01-12 18:47:08 +10:00
.gitignore initial Bazel conversion 2020-11-01 14:26:58 +10:00
backend.proto more search bikeshedding 2021-02-11 17:11:17 +10:00
BUILD.bazel render deck description with markdown; strip images 2021-02-06 15:02:40 +10:00
Cargo.toml render deck description with markdown; strip images 2021-02-06 15:02:40 +10:00
clang_format.bzl NF: add AGPL licence missing in some file 2021-01-31 21:50:21 +01:00
proto_format.py NF: add AGPL licence missing in some file 2021-01-31 21:50:21 +01:00
README.md add some code editing/completion docs 2020-12-16 14:16:08 +10:00
rustfmt.bzl NF: add AGPL licence missing in some file 2021-01-31 21:50:21 +01:00

Anki's Rust code.

backend.proto stores the interfaces used to communicate backend messages between Rust, Python and TypeScript.