Add clippy to CI
This commit is contained in:
parent
3ec4d1c125
commit
b90edd72a6
3 changed files with 54 additions and 35 deletions
10
.github/workflows/build_and_test.yml
vendored
10
.github/workflows/build_and_test.yml
vendored
|
@ -20,6 +20,16 @@ env:
|
||||||
CARGO_TERM_COLOR: always
|
CARGO_TERM_COLOR: always
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
clippy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- run: rustup component add clippy
|
||||||
|
- uses: actions-rs/clippy-check@v1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
args: --all-features
|
||||||
|
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|
|
@ -21,8 +21,7 @@
|
||||||
#
|
#
|
||||||
# Default values are commented out.
|
# Default values are commented out.
|
||||||
|
|
||||||
# The size in mebibytes of the cache
|
# The size in mebibytes of the cache You can use megabytes instead in a pinch,
|
||||||
# You can use megabytes instead in a pinch,
|
|
||||||
# but just know the two are **NOT** the same.
|
# but just know the two are **NOT** the same.
|
||||||
max_cache_size_in_mebibytes: 0
|
max_cache_size_in_mebibytes: 0
|
||||||
|
|
||||||
|
@ -34,7 +33,7 @@ server_settings:
|
||||||
# port: 443
|
# port: 443
|
||||||
|
|
||||||
# This controls the value the server receives for your upload speed.
|
# This controls the value the server receives for your upload speed.
|
||||||
external_max_kilobits_per_second: 0
|
external_max_kilobits_per_second: 1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Advanced settings
|
# Advanced settings
|
||||||
|
|
|
@ -178,28 +178,6 @@ impl Config {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
|
||||||
struct YamlArgs {
|
|
||||||
// Naming is legacy
|
|
||||||
max_cache_size_in_mebibytes: Mebibytes,
|
|
||||||
server_settings: YamlServerSettings,
|
|
||||||
// This implementation custom options
|
|
||||||
extended_options: Option<YamlExtendedOptions>,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Naming is legacy
|
|
||||||
#[derive(Deserialize)]
|
|
||||||
struct YamlServerSettings {
|
|
||||||
secret: ClientSecret,
|
|
||||||
#[serde(default)]
|
|
||||||
port: Port,
|
|
||||||
external_max_kilobits_per_second: KilobitsPerSecond,
|
|
||||||
external_port: Option<Port>,
|
|
||||||
graceful_shutdown_wait_seconds: Option<NonZeroU16>,
|
|
||||||
hostname: Option<IpAddr>,
|
|
||||||
external_ip: Option<IpAddr>,
|
|
||||||
}
|
|
||||||
|
|
||||||
// this intentionally does not implement display
|
// this intentionally does not implement display
|
||||||
#[derive(Deserialize, Serialize, Clone)]
|
#[derive(Deserialize, Serialize, Clone)]
|
||||||
pub struct ClientSecret(String);
|
pub struct ClientSecret(String);
|
||||||
|
@ -210,16 +188,6 @@ impl std::fmt::Debug for ClientSecret {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Default)]
|
|
||||||
struct YamlExtendedOptions {
|
|
||||||
memory_quota: Option<Mebibytes>,
|
|
||||||
cache_type: Option<CacheType>,
|
|
||||||
ephemeral_disk_encryption: Option<bool>,
|
|
||||||
enable_metrics: Option<bool>,
|
|
||||||
logging_level: Option<LevelFilter>,
|
|
||||||
cache_path: Option<PathBuf>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Deserialize, Copy, Clone, Debug)]
|
#[derive(Deserialize, Copy, Clone, Debug)]
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
pub enum CacheType {
|
pub enum CacheType {
|
||||||
|
@ -247,6 +215,38 @@ impl Default for CacheType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
struct YamlArgs {
|
||||||
|
// Naming is legacy
|
||||||
|
max_cache_size_in_mebibytes: Mebibytes,
|
||||||
|
server_settings: YamlServerSettings,
|
||||||
|
// This implementation custom options
|
||||||
|
extended_options: Option<YamlExtendedOptions>,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Naming is legacy
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
struct YamlServerSettings {
|
||||||
|
secret: ClientSecret,
|
||||||
|
#[serde(default)]
|
||||||
|
port: Port,
|
||||||
|
external_max_kilobits_per_second: KilobitsPerSecond,
|
||||||
|
external_port: Option<Port>,
|
||||||
|
graceful_shutdown_wait_seconds: Option<NonZeroU16>,
|
||||||
|
hostname: Option<IpAddr>,
|
||||||
|
external_ip: Option<IpAddr>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize, Default)]
|
||||||
|
struct YamlExtendedOptions {
|
||||||
|
memory_quota: Option<Mebibytes>,
|
||||||
|
cache_type: Option<CacheType>,
|
||||||
|
ephemeral_disk_encryption: Option<bool>,
|
||||||
|
enable_metrics: Option<bool>,
|
||||||
|
logging_level: Option<LevelFilter>,
|
||||||
|
cache_path: Option<PathBuf>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clap, Clone)]
|
#[derive(Clap, Clone)]
|
||||||
#[clap(version = crate_version!(), author = crate_authors!(), about = crate_description!())]
|
#[clap(version = crate_version!(), author = crate_authors!(), about = crate_description!())]
|
||||||
struct CliArgs {
|
struct CliArgs {
|
||||||
|
@ -332,3 +332,13 @@ impl Display for UnstableOptions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod sample_yaml {
|
||||||
|
use crate::config::YamlArgs;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sample_yaml_parses() {
|
||||||
|
assert!(serde_yaml::from_str::<YamlArgs>(include_str!("../settings.sample.yaml")).is_ok())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue