Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
Byron committed Nov 11, 2022
1 parent e3a24e6 commit 0ced3a4
Showing 1 changed file with 33 additions and 17 deletions.
50 changes: 33 additions & 17 deletions git-repository/src/repository/config/transport.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,26 +45,42 @@ impl crate::Repository {
};
}

opts.low_speed_time_seconds = {
let integer = config
.integer_filter("http", None, "lowSpeedTime", &mut trusted_only)
.transpose()
.map_err(|err| crate::config::transport::Error::ConfigValue {
source: err,
key: "http.lowSpeedTime",
})?
.unwrap_or_default();
integer
.try_into()
.map_err(|_| crate::config::transport::Error::InvalidInteger {
actual: integer,
key: "http.lowSpeedLimit",
kind: "u64",
})?
};
opts.low_speed_time_seconds = integer(config, "http.lowSpeedTime", "u64", trusted_only)?;
opts.low_speed_limit_bytes_per_second = integer(config, "http.lowSpeedLimit", "u32", trusted_only)?;
todo!();
}
File | Git | Ssh | Ext(_) => Ok(None),
}
}
}

fn integer<T>(
config: &git_config::File<'static>,
key: &'static str,
kind: &'static str,
mut filter: fn(&git_config::file::Metadata) -> bool,
) -> Result<T, crate::config::transport::Error>
where
T: TryFrom<i64>,
{
let git_config::parse::Key {
section_name,
value_name,
..
} = git_config::parse::key(key).expect("valid key statically known");
let integer = config
.integer_filter(section_name, None, value_name, &mut filter)
.transpose()
.map_err(|err| crate::config::transport::Error::ConfigValue {
source: err,
key: "http.lowSpeedTime",
})?
.unwrap_or_default();
Ok(integer
.try_into()
.map_err(|_| crate::config::transport::Error::InvalidInteger {
actual: integer,
key,
kind,
})?)
}

0 comments on commit 0ced3a4

Please sign in to comment.