# sliding-window-aggregation
This crate provides an implementation of the Sliding Window Aggregation (SWAg) data structure. SWAg is basically a queue with a fast folding operation. SWAg supports the following operations, each one of which takes amortized O(1) time: - `push_back`: push an element to the back of the queue. - `pop_front`: pop an element from the front of the queue. - `fold_all`: for an operation `op`, compute the _fold_ of all elements in the queue, i.e. `a1 op a2 op ... op an` if the queue's content is `[a1, a2, ..., an]`. A detailed explanation is given in [https://scrapbox.io/data-structures/Sliding_Window_Aggregation](https://scrapbox.io/data-structures/Sliding_Window_Aggregation).