Skip to content

Commit 623d78a

Browse files
committed
Remove FetchResources trait (breaking)
1 parent 93bb49a commit 623d78a

File tree

6 files changed

+17
-26
lines changed

6 files changed

+17
-26
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## [Unreleased]
44

5+
## Changed
6+
7+
* **rust-releases-core** Remove `FetchResources` trait (breaking)
8+
* **rust-releases-rust-changelog** Implement fetching of release information directly instead of via `FetchResources` trait (breaking)
9+
* **rust-releases-rust-dist** Implement fetching of release information directly instead of via `FetchResources` trait (breaking)
10+
511
[Unreleased]: https://github.com/foresterre/rust-releases
612

713
## [0.30.0] - 2025-03-12

crates/rust-releases-core/src/lib.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,3 @@ pub trait Source {
3535
/// Build a release index from a data set.
3636
fn build_index(&self) -> Result<ReleaseIndex, Self::Error>;
3737
}
38-
39-
/// With `FetchResources`, the set of inputs required to build a release index can be fetched.
40-
pub trait FetchResources
41-
where
42-
Self: Sized,
43-
{
44-
/// The error to be returned when a resource can not be fetched.
45-
type Error;
46-
47-
/// Fetch a set of inputs for a release channel.
48-
fn fetch_channel(channel: Channel) -> Result<Self, Self::Error>;
49-
}

crates/rust-releases-rust-changelog/src/lib.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//! Please, see the [`rust-releases`] for additional documentation on how this crate can be used.
55
//!
66
//! [`rust-releases`]: https://docs.rs/rust-releases
7-
use rust_releases_core::{semver, Channel, FetchResources, Release, ReleaseIndex, Source};
7+
use rust_releases_core::{semver, Channel, Release, ReleaseIndex, Source};
88
use rust_releases_io::Document;
99
#[cfg(test)]
1010
#[macro_use]
@@ -100,10 +100,9 @@ fn create_release(line: &str, today: &ReleaseDate) -> Option<RustChangelogResult
100100
}
101101
}
102102

103-
impl FetchResources for RustChangelog {
104-
type Error = RustChangelogError;
105-
106-
fn fetch_channel(channel: Channel) -> Result<Self, Self::Error> {
103+
impl RustChangelog {
104+
/// Fetch all known releases from the official rust changelog
105+
pub fn fetch_channel(channel: Channel) -> Result<Self, RustChangelogError> {
107106
if let Channel::Stable = channel {
108107
let document = fetch()?;
109108
Ok(Self::from_document(document))
@@ -167,7 +166,7 @@ impl FromStr for ReleaseDate {
167166
mod tests {
168167
use super::ReleaseDate;
169168
use crate::RustChangelog;
170-
use rust_releases_core::{semver, Channel, FetchResources, Release, ReleaseIndex};
169+
use rust_releases_core::{semver, Channel, Release, ReleaseIndex};
171170
use rust_releases_io::Document;
172171
use std::fs;
173172
use time::macros::date;

crates/rust-releases-rust-dist/src/lib.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
extern crate rust_releases_io;
1212

1313
use regex::{Captures, Regex};
14-
use rust_releases_core::{semver, Channel, FetchResources, Release, ReleaseIndex, Source};
14+
use rust_releases_core::{semver, Channel, Release, ReleaseIndex, Source};
1515
use rust_releases_io::Document;
1616
use std::collections::BTreeSet;
1717
use std::iter::FromIterator;
@@ -76,10 +76,9 @@ fn parse_release(capture: Captures) -> RustDistResult<Release> {
7676
)))
7777
}
7878

79-
impl FetchResources for RustDist {
80-
type Error = RustDistError;
81-
82-
fn fetch_channel(channel: Channel) -> Result<Self, Self::Error> {
79+
impl RustDist {
80+
/// Fetch all known releases from the rust S3 distribution bucket
81+
pub fn fetch_channel(channel: Channel) -> Result<Self, RustDistError> {
8382
if let Channel::Stable = channel {
8483
let source = fetch::fetch()?;
8584
Ok(Self { source })

examples/list-stable.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use rust_releases::FetchResources;
21
use rust_releases_core::{Channel, ReleaseIndex};
32
use rust_releases_rust_changelog::RustChangelog;
43
#[cfg(feature = "rust-dist")]

src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
//! # Example
100100
//!
101101
//! ```rust,no_run
102-
//! use rust_releases_core::{FetchResources, Source, Channel, ReleaseIndex};
102+
//! use rust_releases_core::{Source, Channel, ReleaseIndex};
103103
//! use rust_releases_rust_changelog::RustChangelog;
104104
//!
105105
//! // We choose the RustChangelog source for this example; alternatives are RustDistWithCLI and ChannelManifests
@@ -189,7 +189,7 @@ pub mod linear;
189189

190190
// core re-exports
191191
pub use rust_releases_core::{
192-
semver, Channel, CoreError, CoreResult, FetchResources, Release, ReleaseIndex, Source,
192+
semver, Channel, CoreError, CoreResult, Release, ReleaseIndex, Source,
193193
};
194194

195195
#[cfg(feature = "rust-releases-io")]

0 commit comments

Comments
 (0)