|
2 | 2 | // SPDX-License-Identifier: Apache-2.0 |
3 | 3 |
|
4 | 4 | use crate::{client, intercept::Intercept, perf, task, tls, Result}; |
| 5 | +use clap::Args; |
5 | 6 | use s2n_quic::{client::Connect, provider::event, Client, Connection}; |
6 | | -use structopt::StructOpt; |
7 | 7 |
|
8 | | -#[derive(Debug, StructOpt)] |
| 8 | +#[derive(Debug, Args)] |
9 | 9 | pub struct Perf { |
10 | | - #[structopt(short, long, default_value = "127.0.0.1")] |
| 10 | + #[clap(short, long, default_value = "127.0.0.1")] |
11 | 11 | ip: std::net::IpAddr, |
12 | 12 |
|
13 | | - #[structopt(short, long, default_value = "443")] |
| 13 | + #[clap(short, long, default_value = "443")] |
14 | 14 | port: u16, |
15 | 15 |
|
16 | | - #[structopt(short, long)] |
| 16 | + #[clap(short, long)] |
17 | 17 | server_name: Option<String>, |
18 | 18 |
|
19 | 19 | //= https://tools.ietf.org/id/draft-banks-quic-performance-00#2.1 |
20 | 20 | //# The ALPN used by the QUIC performance protocol is "perf". |
21 | | - #[structopt(long, default_value = "perf")] |
| 21 | + #[clap(long, default_value = "perf")] |
22 | 22 | application_protocols: Vec<String>, |
23 | 23 |
|
24 | 24 | /// The total number of connections to open from the client |
25 | | - #[structopt(long, default_value = "1")] |
| 25 | + #[clap(long, default_value = "1")] |
26 | 26 | connections: usize, |
27 | 27 |
|
28 | 28 | /// Defines the number of concurrent connections to open at any given time |
29 | | - #[structopt(long, default_value = "10")] |
| 29 | + #[clap(long, default_value = "10")] |
30 | 30 | concurrency: u64, |
31 | 31 |
|
32 | | - #[structopt(long, default_value)] |
| 32 | + #[clap(long, default_value_t)] |
33 | 33 | send: u64, |
34 | 34 |
|
35 | | - #[structopt(long, default_value)] |
| 35 | + #[clap(long, default_value_t)] |
36 | 36 | receive: u64, |
37 | 37 |
|
38 | | - #[structopt(long, default_value = "1")] |
| 38 | + #[clap(long, default_value = "1")] |
39 | 39 | streams: u64, |
40 | 40 |
|
41 | | - #[structopt(flatten)] |
| 41 | + #[clap(flatten)] |
42 | 42 | limits: crate::limits::Limits, |
43 | 43 |
|
44 | 44 | /// Logs statistics for the endpoint |
45 | | - #[structopt(long)] |
| 45 | + #[clap(long)] |
46 | 46 | stats: bool, |
47 | 47 |
|
48 | | - #[structopt(flatten)] |
| 48 | + #[clap(flatten)] |
49 | 49 | io: crate::io::Client, |
50 | 50 |
|
51 | | - #[structopt(flatten)] |
| 51 | + #[clap(flatten)] |
52 | 52 | tls: tls::Client, |
53 | 53 |
|
54 | | - #[structopt(flatten)] |
| 54 | + #[clap(flatten)] |
55 | 55 | runtime: crate::runtime::Runtime, |
56 | 56 |
|
57 | | - #[structopt(flatten)] |
| 57 | + #[clap(flatten)] |
58 | 58 | congestion_controller: crate::congestion_control::CongestionControl, |
59 | 59 |
|
60 | | - #[structopt(flatten)] |
| 60 | + #[clap(flatten)] |
61 | 61 | intercept: Intercept, |
62 | 62 | } |
63 | 63 |
|
|
0 commit comments