Skip to content

Commit 516d824

Browse files
authored
Merge pull request #191 from ia7ck/zarts
zarts
2 parents 7b824c0 + 5ae53cf commit 516d824

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

libs/zarts/src/lib.rs

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,11 @@ use std::{
4545
///
4646
pub struct SortedSeq<T>(Vec<T>);
4747

48-
impl<T> FromIterator<T> for SortedSeq<T>
49-
where
50-
T: Ord,
51-
{
52-
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self {
53-
Self::new(iter)
54-
}
55-
}
56-
5748
impl<T> SortedSeq<T>
5849
where
5950
T: Ord,
6051
{
61-
pub fn new(values: impl IntoIterator<Item = T>) -> Self {
62-
let mut values = values.into_iter().collect::<Vec<_>>();
52+
pub fn new(mut values: Vec<T>) -> Self {
6353
values.sort_unstable();
6454
values.dedup();
6555
Self(values)
@@ -78,9 +68,22 @@ where
7868
}
7969

8070
/// 集合のサイズを返します
81-
pub fn size(&self) -> usize {
71+
pub fn len(&self) -> usize {
8272
self.0.len()
8373
}
74+
75+
pub fn is_empty(&self) -> bool {
76+
self.0.is_empty()
77+
}
78+
}
79+
80+
impl<T> FromIterator<T> for SortedSeq<T>
81+
where
82+
T: Ord,
83+
{
84+
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self {
85+
Self::new(iter.into_iter().collect())
86+
}
8487
}
8588

8689
impl<T> Index<usize> for SortedSeq<T> {
@@ -116,7 +119,7 @@ mod tests {
116119

117120
#[test]
118121
fn index_test() {
119-
let seq = SortedSeq::new([4, 4, 2, 5, 2, 9]);
122+
let seq = SortedSeq::new(vec![4, 4, 2, 5, 2, 9]);
120123
// 2, 4, 5, 9
121124
assert_eq!(seq.at(0), &2);
122125
assert_eq!(seq.at(1), &4);

0 commit comments

Comments
 (0)