Skip to content

Commit 2aa4c84

Browse files
committed
chore: upgrade to Rust 2024 edition
1 parent 62bd7d2 commit 2aa4c84

91 files changed

Lines changed: 389 additions & 379 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ version = "0.21.1"
2424
authors = [
2525
"Mozilla Sync Backend Engineering <sync-backend@mozilla.com",
2626
]
27-
edition = "2021"
27+
edition = "2024"
2828
rust-version = "1.89"
2929
license = "MPL-2.0"
3030

syncserver-common/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ mod tags;
77

88
use std::{
99
fmt,
10-
sync::atomic::{AtomicU64, Ordering},
1110
sync::Arc,
11+
sync::atomic::{AtomicU64, Ordering},
1212
};
1313

1414
use actix_web::web;
@@ -17,7 +17,7 @@ use hkdf::Hkdf;
1717
use serde_json::Value;
1818
use sha2::Sha256;
1919

20-
pub use metrics::{metrics_from_opts, MetricError, Metrics};
20+
pub use metrics::{MetricError, Metrics, metrics_from_opts};
2121
pub use tags::Taggable;
2222

2323
// header statics must be lower case, numbers and symbols per the RFC spec. This reduces chance of error.

syncserver-common/src/metrics.rs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::time::Instant;
66
use cadence::{
77
BufferedUdpMetricSink, Counted, Metric, NopMetricSink, QueuingMetricSink, StatsdClient, Timed,
88
};
9-
use slog::{Key, Record, KV};
9+
use slog::{KV, Key, Record};
1010

1111
pub use cadence::MetricError;
1212

@@ -27,26 +27,26 @@ pub struct Metrics {
2727
impl Drop for Metrics {
2828
fn drop(&mut self) {
2929
let tags = self.tags.clone();
30-
if let Some(client) = self.client.as_ref() {
31-
if let Some(timer) = self.timer.as_ref() {
32-
let lapse = (Instant::now() - timer.start).as_millis() as u64;
33-
trace!("⌚ Ending timer at nanos: {:?} : {:?}", &timer.label, lapse; &MetricTags(tags));
34-
let mut tagged = client.time_with_tags(&timer.label, lapse);
35-
// Include any "hard coded" tags.
36-
// tagged = tagged.with_tag("version", env!("CARGO_PKG_VERSION"));
37-
let tags = timer.tags.clone();
38-
let keys = tags.keys();
39-
for tag in keys {
40-
tagged = tagged.with_tag(tag, tags.get(tag).unwrap())
30+
if let Some(client) = self.client.as_ref()
31+
&& let Some(timer) = self.timer.as_ref()
32+
{
33+
let lapse = (Instant::now() - timer.start).as_millis() as u64;
34+
trace!("⌚ Ending timer at nanos: {:?} : {:?}", &timer.label, lapse; &MetricTags(tags));
35+
let mut tagged = client.time_with_tags(&timer.label, lapse);
36+
// Include any "hard coded" tags.
37+
// tagged = tagged.with_tag("version", env!("CARGO_PKG_VERSION"));
38+
let tags = timer.tags.clone();
39+
let keys = tags.keys();
40+
for tag in keys {
41+
tagged = tagged.with_tag(tag, tags.get(tag).unwrap())
42+
}
43+
match tagged.try_send() {
44+
Err(e) => {
45+
// eat the metric, but log the error
46+
warn!("⚠️ Metric {} error: {:?} ", &timer.label, e);
4147
}
42-
match tagged.try_send() {
43-
Err(e) => {
44-
// eat the metric, but log the error
45-
warn!("⚠️ Metric {} error: {:?} ", &timer.label, e);
46-
}
47-
Ok(v) => {
48-
trace!("⌚ {:?}", v.as_metric_str());
49-
}
48+
Ok(v) => {
49+
trace!("⌚ {:?}", v.as_metric_str());
5050
}
5151
}
5252
}

syncserver-common/src/middleware/sentry.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
use std::{cell::RefCell, collections::BTreeMap, marker::PhantomData, rc::Rc, sync::Arc};
22

33
use actix_web::{
4-
dev::{Service, ServiceRequest, ServiceResponse, Transform},
54
Error,
5+
dev::{Service, ServiceRequest, ServiceResponse, Transform},
66
};
77
use cadence::{CountedExt, StatsdClient};
8-
use futures::{future::LocalBoxFuture, FutureExt};
9-
use futures_util::future::{ok, Ready};
10-
use sentry::{protocol::Event, Hub};
8+
use futures::{FutureExt, future::LocalBoxFuture};
9+
use futures_util::future::{Ready, ok};
10+
use sentry::{Hub, protocol::Event};
1111

1212
use crate::{ReportableError, Taggable};
1313

@@ -110,12 +110,12 @@ where
110110
};
111111
// Check for errors inside the response
112112
if let Some(error) = response.response().error() {
113-
if let Some(reportable_err) = error.as_error::<E>() {
114-
if !reportable_err.is_sentry_event() {
115-
maybe_emit_metrics(&metrics, reportable_err);
116-
debug!("Not reporting error (service error): {:?}", error);
117-
return Ok(response);
118-
}
113+
if let Some(reportable_err) = error.as_error::<E>()
114+
&& !reportable_err.is_sentry_event()
115+
{
116+
maybe_emit_metrics(&metrics, reportable_err);
117+
debug!("Not reporting error (service error): {:?}", error);
118+
return Ok(response);
119119
}
120120
debug!("Reporting error to Sentry (response error): {}", error);
121121
let event = event_from_actix_error::<E>(error);

syncserver-db-common/src/error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::fmt;
22

33
use backtrace::Backtrace;
44
use http::StatusCode;
5-
use syncserver_common::{from_error, impl_fmt_display, ReportableError};
5+
use syncserver_common::{ReportableError, from_error, impl_fmt_display};
66
use thiserror::Error;
77

88
/// Error specific to any SQL database backend. These errors are not related to the syncstorage

syncserver-db-common/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ use std::{error::Error, fmt::Debug};
55

66
#[cfg(debug_assertions)]
77
use diesel::connection::InstrumentationEvent;
8-
use diesel::{result::ConnectionResult, Connection};
8+
use diesel::{Connection, result::ConnectionResult};
99
use diesel_async::{
10-
async_connection_wrapper::AsyncConnectionWrapper, pooled_connection::ManagerConfig,
11-
AsyncConnection, AsyncMigrationHarness,
10+
AsyncConnection, AsyncMigrationHarness, async_connection_wrapper::AsyncConnectionWrapper,
11+
pooled_connection::ManagerConfig,
1212
};
1313
use diesel_migrations::{EmbeddedMigrations, MigrationHarness};
1414
use tokio::task::spawn_blocking;

syncserver-db-common/src/test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use deadpool::managed::{HookError, HookResult};
2-
use diesel_async::{pooled_connection::PoolError, AsyncConnection};
2+
use diesel_async::{AsyncConnection, pooled_connection::PoolError};
33

44
pub async fn test_transaction_hook<T>(conn: &mut T) -> HookResult<PoolError>
55
where

syncserver-settings/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@ syncserver-common = { path = "../syncserver-common" }
1515
syncstorage-settings = { path = "../syncstorage-settings" }
1616
tokenserver-settings = { path = "../tokenserver-settings" }
1717
url = "2.1"
18+
19+
[dev-dependencies]
20+
temp-env = "0.3"

syncserver-settings/src/lib.rs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -280,22 +280,27 @@ impl<'d> Deserialize<'d> for Secrets {
280280

281281
#[cfg(test)]
282282
mod test {
283-
use std::env;
284-
285283
use super::*;
286284

287285
#[test]
288286
fn test_environment_variable_prefix() {
289287
// Setting an environment variable with the correct prefix correctly sets the setting
290288
// (note that the default value for the settings.tokenserver.enabled setting is false)
291-
env::set_var("SYNC_TOKENSERVER__ENABLED", "true");
292-
let settings = Settings::with_env_and_config_file(None).unwrap();
293-
assert!(settings.tokenserver.enabled);
289+
temp_env::with_var("SYNC_TOKENSERVER__ENABLED", Some("true"), || {
290+
let settings = Settings::with_env_and_config_file(None).unwrap();
291+
assert!(settings.tokenserver.enabled);
292+
});
294293

295294
// Setting an environment variable with the incorrect prefix does not set the setting
296-
env::remove_var("SYNC_TOKENSERVER__ENABLED");
297-
env::set_var("SYNC__TOKENSERVER__ENABLED", "true");
298-
let settings = Settings::with_env_and_config_file(None).unwrap();
299-
assert!(!settings.tokenserver.enabled);
295+
temp_env::with_vars(
296+
[
297+
("SYNC_TOKENSERVER__ENABLED", None),
298+
("SYNC__TOKENSERVER__ENABLED", Some("true")),
299+
],
300+
|| {
301+
let settings = Settings::with_env_and_config_file(None).unwrap();
302+
assert!(!settings.tokenserver.enabled);
303+
},
304+
);
300305
}
301306
}

0 commit comments

Comments
 (0)