Skip to content

ArthurRosso/async_iterator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust AsyncIterator

This Rust code defines an asynchronous iterator trait (AsyncIterator) and its associated types and implementations. It provides a framework for transforming and processing asynchronous data streams in a composable and efficient manner.

AsyncIterator Trait:

The AsyncIterator trait defines the core functionality for asynchronous iterators. It specifies two methods:

  • fold_folder: Applies a fold operation to the iterator's elements using a provided Folder instance.

  • async_fold: A higher-order version of fold_folder that takes an initial value and a fold function as parameters.

Map, Filter, and Collect Implementations:

The AsyncIterator trait provides three methods for transforming and filtering the iterator's elements:

  • map: Applies a provided function to each element and returns a new iterator containing the transformed elements.

  • filter: Filters the iterator's elements based on a provided predicate function, returning only those elements that satisfy the predicate.

  • collect_vec: Collects all the elements of the iterator into a Vec.

Folder Trait and BasicFolder Struct:

The Folder trait defines the fold operation for asynchronous iterators. It takes an initial value and a fold function as input and returns an updated value. The BasicFolder struct implements the Folder trait and provides a default fold operation.

MapFolder and FilterFolder Structs:

The MapFolder and FilterFolder structs specialize the Folder trait for Map and Filter iterators, respectively. They apply the respective transformation or filtering logic to each element before calling the base Folder's fold operation.

Iter, Map, and Filter Struct Implementations:

The Iter, Map, and Filter structs implement the AsyncIterator trait for various types of asynchronous iterators. They handle the specific logic for iterating over and processing their respective data sources.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages