migrate from lazy_static to once_cell across project

This commit is contained in:
Jake McGinty 2023-05-30 01:34:44 -05:00 committed by Matěj Laitl
parent f67457e0a4
commit ebeac3db76
9 changed files with 29 additions and 33 deletions

6
Cargo.lock generated
View file

@ -141,8 +141,8 @@ dependencies = [
"hostsfile",
"indoc",
"ipnet",
"lazy_static",
"log",
"once_cell",
"regex",
"serde",
"serde_json",
@ -920,10 +920,10 @@ dependencies = [
"hyper",
"indoc",
"ipnet",
"lazy_static",
"libc",
"libsqlite3-sys",
"log",
"once_cell",
"parking_lot",
"pretty_env_logger",
"publicip",
@ -953,7 +953,6 @@ dependencies = [
"dialoguer",
"indoc",
"ipnet",
"lazy_static",
"libc",
"log",
"netlink-packet-core",
@ -961,6 +960,7 @@ dependencies = [
"netlink-request",
"netlink-sys",
"nix",
"once_cell",
"publicip",
"regex",
"serde",

View file

@ -22,7 +22,6 @@ dialoguer = { version = "0.10", default-features = false }
hostsfile = { path = "../hostsfile" }
indoc = "1"
ipnet = { version = "2.4", features = ["serde"] }
lazy_static = "1"
log = "0.4"
regex = { version = "1", default-features = false, features = ["std"] }
serde = { version = "1.0", features = ["derive"] }
@ -32,6 +31,7 @@ ureq = { version = "2", default-features = false, features = ["json"] }
wireguard-control = { path = "../wireguard-control" }
[dev-dependencies]
once_cell = "1.17.1"
tempfile = "3"
[package.metadata.deb]

View file

@ -144,10 +144,10 @@ impl DataStore {
#[cfg(test)]
mod tests {
use super::*;
use lazy_static::lazy_static;
use once_cell::sync::Lazy;
use shared::{Cidr, CidrContents, Peer, PeerContents};
lazy_static! {
static ref BASE_PEERS: Vec<Peer> = vec![Peer {
static BASE_PEERS: Lazy<Vec<Peer>> = Lazy::new(|| {
vec![Peer {
id: 0,
contents: PeerContents {
name: "blah".parse().unwrap(),
@ -161,17 +161,19 @@ mod tests {
persistent_keepalive_interval: None,
invite_expires: None,
candidates: vec![],
}
}];
static ref BASE_CIDRS: Vec<Cidr> = vec![Cidr {
},
}]
});
static BASE_CIDRS: Lazy<Vec<Cidr>> = Lazy::new(|| {
vec![Cidr {
id: 1,
contents: CidrContents {
name: "cidr".to_string(),
cidr: "10.0.0.0/24".parse().unwrap(),
parent: None
}
}];
}
parent: None,
},
}]
});
fn setup_basic_store(dir: &Path) {
let mut store = DataStore::open_with_path(dir.join("peer_store.json"), true).unwrap();

View file

@ -25,10 +25,10 @@ dialoguer = { version = "0.10", default-features = false }
hyper = { version = "0.14", default-features = false, features = ["http1", "server", "runtime", "stream"] }
indoc = "1"
ipnet = { version = "2.4", features = ["serde"] }
lazy_static = "1"
libc = "0.2"
libsqlite3-sys = "0.25"
log = "0.4"
once_cell = "1.17.1"
parking_lot = "0.12"
pretty_env_logger = "0.4"
publicip = { path = "../publicip" }

View file

@ -8,7 +8,7 @@ pub mod user;
/// Inject the collected endpoints from the WG interface into a list of peers.
/// This is essentially what adds NAT holepunching functionality.
pub fn inject_endpoints(session: &Session, peers: &mut Vec<Peer>) {
for mut peer in peers {
for peer in peers {
if peer.contents.endpoint.is_none() {
if let Some(endpoint) = session.context.endpoints.read().get(&peer.public_key) {
peer.contents.endpoint = Some(endpoint.to_owned().into());

View file

@ -1,6 +1,6 @@
use super::DatabaseCidr;
use crate::ServerError;
use lazy_static::lazy_static;
use once_cell::sync::Lazy;
use regex::Regex;
use rusqlite::{params, types::Type, Connection};
use shared::{IpNetExt, Peer, PeerContents, PERSISTENT_KEEPALIVE_INTERVAL_SECS};
@ -42,11 +42,9 @@ pub static COLUMNS: &[&str] = &[
"candidates",
];
lazy_static! {
/// Regex to match the requirements of hostname(7), needed to have peers also be reachable hostnames.
/// Note that the full length also must be maximum 63 characters, which this regex does not check.
static ref PEER_NAME_REGEX: Regex = Regex::new(r"^([a-z0-9]-?)*[a-z0-9]$").unwrap();
}
/// Regex to match the requirements of hostname(7), needed to have peers also be reachable hostnames.
/// Note that the full length also must be maximum 63 characters, which this regex does not check.
static PEER_NAME_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"^([a-z0-9]-?)*[a-z0-9]$").unwrap());
#[derive(Debug)]
pub struct DatabasePeer {

View file

@ -14,9 +14,9 @@ colored = "2.0"
dialoguer = { version = "0.10", default-features = false }
indoc = "1"
ipnet = { version = "2.4", features = ["serde"] }
lazy_static = "1"
libc = "0.2"
log = "0.4"
once_cell = "1.17.1"
publicip = { path = "../publicip" }
regex = "1"
serde = { version = "1", features = ["derive"] }

View file

@ -8,7 +8,7 @@ use anyhow::anyhow;
use colored::*;
use dialoguer::{theme::ColorfulTheme, Confirm, Input, Select};
use ipnet::IpNet;
use lazy_static::lazy_static;
use once_cell::sync::Lazy;
use publicip::Preference;
use std::{
fmt::{Debug, Display},
@ -20,9 +20,7 @@ use std::{
};
use wireguard_control::{InterfaceName, KeyPair};
lazy_static! {
pub static ref THEME: ColorfulTheme = ColorfulTheme::default();
}
pub static THEME: Lazy<ColorfulTheme> = Lazy::new(ColorfulTheme::default);
pub fn ensure_interactive(prompt: &str) -> Result<(), io::Error> {
if atty::is(atty::Stream::Stdin) {

View file

@ -1,7 +1,7 @@
use anyhow::{anyhow, Error};
use clap::Args;
use ipnet::IpNet;
use lazy_static::lazy_static;
use once_cell::sync::Lazy;
use regex::Regex;
use serde::{Deserialize, Serialize};
use std::{
@ -758,11 +758,9 @@ impl From<Timestring> for Duration {
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Hostname(String);
lazy_static! {
/// Regex to match the requirements of hostname(7), needed to have peers also be reachable hostnames.
/// Note that the full length also must be maximum 63 characters, which this regex does not check.
static ref HOSTNAME_REGEX: Regex = Regex::new(r"^([a-z0-9]-?)*[a-z0-9]$").unwrap();
}
/// Regex to match the requirements of hostname(7), needed to have peers also be reachable hostnames.
/// Note that the full length also must be maximum 63 characters, which this regex does not check.
static HOSTNAME_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"^([a-z0-9]-?)*[a-z0-9]$").unwrap());
impl Hostname {
pub fn is_valid(name: &str) -> bool {