Skip to content

Commit

Permalink
Readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Antti committed Mar 18, 2024
1 parent 29d2b42 commit 2308c75
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 1 deletion.
90 changes: 90 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,92 @@
# distributing-iterator
Distributing iterator

[![Rust](https://github.com/fetlife/distributing-iterator/actions/workflows/rust.yml/badge.svg)](https://github.com/fetlife/distributing-iterator/actions/workflows/rust.yml)

# Synopsis

## Rust

```rust
use distributing_iterator::DistributingIterator;

#[derive(Debug, PartialEq)]
struct Item {
id: u64,
}

let data = vec![
Item { id: 1 },
Item { id: 1 },
Item { id: 1 },
Item { id: 2 },
Item { id: 2 },
Item { id: 2 },
Item { id: 3 },
Item { id: 3 },
Item { id: 3 },
];
let iterator = DistributionIterator::new(data.into(), 3, |item| item.id);
let result: Vec<Vec<Item>> = iterator.collect();
assert_eq!(
result,
vec![
Item { id: 1 }, Item { id: 1 }, Item { id: 1 },
Item { id: 2 }, Item { id: 2 }, Item { id: 2 },
Item { id: 3 }, Item { id: 3 }, Item { id: 3 },
]
);
```


## As a ruby gem:

Gemfile:

```ruby
gem 'distributing_iterator', git: 'fetlife/distributing-iterator'
```

```ruby
require 'distributing_iterator'

csv = <<~CSV
id,name
1,foo
1,bar
1,baz
2,qux
3,quux
3,corge
2,grault
2,garply
3,waldo
3,fred
2,plugh
3,xyzzy
2,thud
3,plugh
3,xyzzy
CSV

output = DistributingIterator.distribute(csv, 'id', 3)

puts output
# id,name
# 1,foo
# 2,qux
# 3,quux
# 1,bar
# 2,grault
# 3,corge
# 1,baz
# 2,garply
# 3,waldo
# 2,plugh
# 3,fred
# 2,thud
# 3,xyzzy
# 3,plugh
# 3,xyzzy

```
2 changes: 1 addition & 1 deletion src/distributing_iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ where
mod tests {
use super::*;

#[derive(Debug, Clone, PartialEq, Eq, Hash)]
#[derive(Debug, PartialEq)]
struct Item {
id: u64,
}
Expand Down

0 comments on commit 2308c75

Please sign in to comment.