* Implement the std::error::Error trait and add a Result type
* Propagate generic io::Error and serde_yaml::Error using From
* Move the Result and Error types to the bottom of the module
* Use the tracing crate instead of println macros
* Do not panic on failure to send messages
* Move the send code to a separate function in preparation for adding
a proper retry implementation
This is a rewrite of our old feedbot in rust, heavily inspired from
rek2's INN matrix bot and making use of some bits from matrix-rust-sdk
This is an asynchronous tokio-based matrix client using a stateless feed
fetcher implementation based on reqwest, it uses feed_rs for parsing RSS
and Atom feeds. State persistence is achieved using a simple file-backed
datastore with serde_yaml as a serialization format.
Published under the GNU General Public License version 3 or later.