subrepo: subdir: "apps/aquatic" merged: "34b45e92" upstream: origin: "https://github.com/greatest-ape/aquatic" branch: "master" commit: "34b45e92" git-subrepo: version: "0.4.9" origin: "???" commit: "???"
30 lines
697 B
Rust
30 lines
697 B
Rust
use std::sync::{atomic::AtomicUsize, Arc};
|
|
|
|
use aquatic_ws_protocol::common::InfoHash;
|
|
use rand_distr::Gamma;
|
|
|
|
#[derive(Default)]
|
|
pub struct Statistics {
|
|
pub requests: AtomicUsize,
|
|
pub response_peers: AtomicUsize,
|
|
pub responses_announce: AtomicUsize,
|
|
pub responses_offer: AtomicUsize,
|
|
pub responses_answer: AtomicUsize,
|
|
pub responses_scrape: AtomicUsize,
|
|
pub responses_error: AtomicUsize,
|
|
pub connections: AtomicUsize,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct LoadTestState {
|
|
pub info_hashes: Arc<[InfoHash]>,
|
|
pub statistics: Arc<Statistics>,
|
|
pub gamma: Arc<Gamma<f64>>,
|
|
}
|
|
|
|
#[derive(PartialEq, Eq, Clone, Copy)]
|
|
pub enum RequestType {
|
|
Announce,
|
|
Scrape,
|
|
}
|