- fix typo in `Delete` variant description from "immediatly" to "immediately"
- correct grammar in trash log message from "move to trash" to "moved to trash"
- add config.rs to handle program configuration
- create default configuration with retention rules
- implement save and load functions for persistent storage
- add credential file setting
- add MessageAge enum to represent retention periods in days, weeks, months, or years
- implement Display trait for MessageAge to format retention periods
- implement label function to generate retention label
- introduce EolRule struct with fields for id, retention, labels, query, and command
- implement methods for creating new rules, setting retention, and adding labels
- add default implementation for EolRule
- introduce `Retention` struct to define data retention period and label generation flag
- add `MessageAge` enum to represent different retention time units (days, months, years)
- implement default values for retention policy (5 years, generate label)
- create MessageSummary struct to hold message id and subject
- update MessageList to use MessageSummary instead of just message ids
- implement log_message_subjects to fetch and log message subjects
- add elide function to truncate long subjects for better logging
- implement Debug trait for MessageList struct for better debugging
- add getter methods for message_ids, label_ids, and hub for external access
- change log level check to include Info and higher for message subject logging
- add message_ids field to store message IDs
- update run method to populate message_ids
- create messages_list method for API calls
- create log_message_subjects method to log message subjects
- refactor label listing to use `else` for option handling
- enhance label listing with id display and conditional logging
- create label map for efficient label id lookup
- create `Message` struct to encapsulate Gmail API interaction
- add methods for setting max results, labels, and query parameters
- implement `run` method to retrieve and log message subjects
- use `google_gmail1` crate for Gmail API interaction
- add error handling for API calls
- Remove the `list.rs` file and its associated functionality
- This change is part of a larger refactoring effort to streamline the core functionality.
- implement new `label` subcommand to list available Gmail labels
- create `label_cli` module to handle label listing logic
- integrate label listing into the main CLI application
- remove get_labels method and integrate its logic into new
- remove log_label_names method and move logging to new
- initialize label_list and label_map directly in new
- allow users to filter messages by label
- implement add_label method to add label IDs to the filter
- integrate label filtering into the messages_list call
- add support for listing messages across multiple pages
- introduce `pages` argument to control the number of pages to retrieve
- implement `get_messages` to fetch a page of messages using `next_page_token`
- create `log_message_subjects` to log the subject of each message on a page
- log the estimated number of messages found
- exit the process with a non-zero error code when the `run` function returns an error
- this ensures that the program signals failure to the operating system
- only log messages from `cull_gmail`
- allow users to specify the maximum number of results to return
- add `max_results` argument to the `ListCli` struct
- set the max results on the `List` struct