std/asyncstreams
Source EditНестабильный API.
Импорты
- asyncfutures, deques
Типы
Процедуры
proc callback=[T](future: FutureStream[T]; cb: proc (future: FutureStream[T]) {.closure, ...gcsafe.})-
Устанавливает процедуру обратного вызова, которая будет вызвана при размещении данных в потоке будущего.
Обратный вызов также вызывается при завершении будущего. Поэтому следует использовать
finishedдля проверки наличия данных.Если в потоке будущего уже есть данные или он завершён, то
Source Editcbбудет вызван немедленно. proc newFutureStream[T](fromProc = "unspecified"): FutureStream[T]
- Создать новый
FutureStream. Обратный вызов этого будущего активируется при возникновении двух событий:- Новые данные записываются в поток будущего.
- Поток будущего завершается (это означает, что больше данных не будет записано).
Указание
fromProc, которое представляет собой строку, указывающую имя процедуры, к которой принадлежит это будущее, – хорошая практика, так как это помогает при отладке.Примечание: API FutureStream всё ещё новый, поэтому вероятность его изменения в будущем выше.
Source Edit proc read[T](future: FutureStream[T]): owned(Future[(bool, T)])
-
Возвращает будущее, которое завершится, когда в
FutureStreamбудут помещены данные. Будущее будет завершено с самым старым значением, хранящимся в потоке. Возвращаемое значение также определит, были ли извлечены данные,falseозначает, что поток будущего был завершен, и данные не были извлечены.Эта функция удалит извлечённые данные из базового
Source EditFutureStream.
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/asyncstreams.html