#circular-buffer #time-series #store #cosmwasm #contracts #astroport #data

astroport-circular-buffer

用于在CosmWasm合约中存储时间序列数据的循环缓冲区

2个不稳定版本

0.2.0 2024年3月26日
0.1.0 2023年10月23日

#25 in #astroport

Download history · Rust 包仓库 446/week @ 2024-03-13 · Rust 包仓库 473/week @ 2024-03-20 · Rust 包仓库 370/week @ 2024-03-27 · Rust 包仓库 377/week @ 2024-04-03 · Rust 包仓库 219/week @ 2024-04-10 · Rust 包仓库 286/week @ 2024-04-17 · Rust 包仓库 329/week @ 2024-04-24 · Rust 包仓库 495/week @ 2024-05-01 · Rust 包仓库 411/week @ 2024-05-08 · Rust 包仓库 239/week @ 2024-05-15 · Rust 包仓库 305/week @ 2024-05-22 · Rust 包仓库 402/week @ 2024-05-29 · Rust 包仓库 822/week @ 2024-06-05 · Rust 包仓库 619/week @ 2024-06-12 · Rust 包仓库 691/week @ 2024-06-19 · Rust 包仓库 709/week @ 2024-06-26 · Rust 包仓库

2,994 每月下载量
34 个crate中使用 (3直接使用)

Apache-2.0

15KB
286

Item 和 [Map] 上构建的循环缓冲区。可能有助于在合约中存储时间序列数据。

示例

use cosmwasm_std::testing::MockStorage;
use astroport_circular_buffer::{BufferManager, CircularBuffer};

const CIRCULAR_BUFFER: CircularBuffer<u128> = CircularBuffer::new("buffer_state", "buffer");

let mut store = MockStorage::new();
BufferManager::init(&mut store, CIRCULAR_BUFFER, 10).unwrap();
let mut buffer = BufferManager::new(&store, CIRCULAR_BUFFER).unwrap();

let data = (1..=10u128).collect::<Vec<_>>();
buffer.push_many(&data);
buffer.commit(&mut store).unwrap();

let values = buffer.read(&store, 0u32..=9, true).unwrap();
let all_values = buffer.read_all(&store).unwrap();

依赖项

~4.5–6MB
~134K SLoC