Skip to content

Commit d238f0f

Browse files
Implement IntoIterator for the list types
1 parent 3dd933a commit d238f0f

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
* `responses::TagList`, `responses::PluginList`, `responses::FeatureFlagList`, `responses::DeprecatedFeatureList`,
88
`responses::MessageList` now all have `len` and `is_empty` methods.
9+
* `responses::TagList`, `responses::PluginList`, `responses::NodeList`, `responses::FeatureFlagList`, `responses::DeprecatedFeatureList`,
10+
`responses::MessageList` now all implement `IntoIterator`.
11+
912

1013
## v0.48.0 (Sep 07, 2025)
1114

src/responses.rs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,15 @@ impl TagList {
5454
}
5555
}
5656

57+
impl IntoIterator for TagList {
58+
type Item = String;
59+
type IntoIter = std::vec::IntoIter<Self::Item>;
60+
61+
fn into_iter(self) -> Self::IntoIter {
62+
self.0.into_iter()
63+
}
64+
}
65+
5766
#[derive(Debug, Serialize, Deserialize, Clone)]
5867
pub struct PluginList(pub Vec<String>);
5968

@@ -67,6 +76,15 @@ impl PluginList {
6776
}
6877
}
6978

79+
impl IntoIterator for PluginList {
80+
type Item = String;
81+
type IntoIter = std::vec::IntoIter<Self::Item>;
82+
83+
fn into_iter(self) -> Self::IntoIter {
84+
self.0.into_iter()
85+
}
86+
}
87+
7088
#[derive(Debug, Serialize, Deserialize, Clone)]
7189
pub struct XArguments(pub Map<String, serde_json::Value>);
7290

@@ -209,6 +227,15 @@ impl NodeList {
209227
}
210228
}
211229

230+
impl IntoIterator for NodeList {
231+
type Item = String;
232+
type IntoIter = std::vec::IntoIter<Self::Item>;
233+
234+
fn into_iter(self) -> Self::IntoIter {
235+
self.0.into_iter()
236+
}
237+
}
238+
212239
#[derive(Debug, Deserialize, Clone)]
213240
#[cfg_attr(feature = "tabled", derive(Tabled))]
214241
#[allow(dead_code)]
@@ -1987,6 +2014,15 @@ impl MessageList {
19872014
}
19882015
}
19892016

2017+
impl IntoIterator for MessageList {
2018+
type Item = GetMessage;
2019+
type IntoIter = std::vec::IntoIter<Self::Item>;
2020+
2021+
fn into_iter(self) -> Self::IntoIter {
2022+
self.0.into_iter()
2023+
}
2024+
}
2025+
19902026
#[allow(clippy::partialeq_ne_impl)]
19912027
impl PartialEq for MessageList {
19922028
fn eq(&self, other: &Self) -> bool {
@@ -2263,6 +2299,15 @@ impl FeatureFlagList {
22632299
}
22642300
}
22652301

2302+
impl IntoIterator for FeatureFlagList {
2303+
type Item = FeatureFlag;
2304+
type IntoIter = std::vec::IntoIter<Self::Item>;
2305+
2306+
fn into_iter(self) -> Self::IntoIter {
2307+
self.0.into_iter()
2308+
}
2309+
}
2310+
22662311
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
22672312
#[serde(rename_all = "snake_case")]
22682313
pub enum DeprecationPhase {
@@ -2351,6 +2396,15 @@ impl DeprecatedFeatureList {
23512396
}
23522397
}
23532398

2399+
impl IntoIterator for DeprecatedFeatureList {
2400+
type Item = DeprecatedFeature;
2401+
type IntoIter = std::vec::IntoIter<Self::Item>;
2402+
2403+
fn into_iter(self) -> Self::IntoIter {
2404+
self.0.into_iter()
2405+
}
2406+
}
2407+
23542408
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
23552409
#[serde(rename_all = "snake_case")]
23562410
pub enum OperatingMode {

0 commit comments

Comments
 (0)