chatmail / chatmail/async-imap
type::Fetch flags ambiguity
- Dominant language
- Rust
- Stars
- 147
- Forks
- 42
- Avg merge
- 8d 15h
- Merged PRs (30d)
- 1
Description
The `types::Fetch` struct allows to iterate over flags no matter whether the field is actually returned by the server. It does not distinguish between the case of the fetch response not containing any flag updates and the message not having any flags. This is an issue for unsolicited fetch responses, as they might or might not contain any flag updates, leading to ambiguity.
Example: FETCH response with no flags set:
```12 FETCH (FLAGS () UID 20)```
Example: FETCH response with other data:
```12 FETCH (UID 20)```
There currently is no way to distinguish these two types of fetch responses via public API, right?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the public `types::Fetch` struct and its flag-iteration API. Compare how it represents `FETCH (FLAGS () UID 20)` with `FETCH (UID 20)` and identify the missing distinction. Done means callers can distinguish an empty flag update from no flag field in unsolicited fetch responses through the public API.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100