timeout-iterator 1.0.0

TimeoutIterator is a wrapper over any iterator that adds peek_timeout and next_timeout functions. The canonical use-case is parsing multi-line free-form records (such as tailing a log fime) where it is desirable to consume the very last line, and peek whether the record continues on the next time, but not block indefinitely on the peek.
Documentation
[package]
name = "timeout-iterator"
version = "1.0.0"
authors = ["Archis Gore <archis@polyverse.io>"]
edition = "2018"
license-file = "LICENSE"
categories = ["asynchronous", "caching", "rust-patterns"]
keywords = ["iterator", "wrapper", "timeout", "peek", "buffer"]
readme = "README.md"
repository = "https://github.com/polyverse/timeout-iterator"

description = """TimeoutIterator is a wrapper over any iterator that adds peek_timeout and next_timeout functions.
The canonical use-case is parsing multi-line free-form records (such as tailing a log fime) where it is desirable to
consume the very last line, and peek whether the record continues on the next time, but not block
indefinitely on the peek."""

[features]
# The default set of optional packages. Most people will want to use these
# packages, but they are strictly optional. Note that `session` is not a package
# but rather another feature listed in this manifest.
async = ["futures", "futures-util", "tokio"]

[dependencies]
# Optional - only enabled through the "async" feature
futures = { version = "0.3.8", optional = true }
futures-util = { version = "0.3.8", optional = true }
tokio = { version = "0.3.6", features = ["rt-multi-thread", "macros", "time", "io-util", "stream", "sync"], optional = true }

[dev-dependencies]
tokio-test = "0.3.0"
assert_matches = "1.4.0"