Skip to content

Commit c971e63

Browse files
authored
Merge branch 'master' into ci-smaller-matrix2
2 parents 1edd116 + 4680097 commit c971e63

File tree

8 files changed

+74
-82
lines changed

8 files changed

+74
-82
lines changed

.github/workflows/main.yml

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,11 @@ jobs:
3535
rust: stable-x86_64-pc-windows-gnu
3636
steps:
3737
- uses: actions/checkout@v4
38-
- name: Install toolchain
39-
run: |
40-
rustup update ${{ matrix.rust }} --no-self-update
41-
rustup default ${{ matrix.rust }}
42-
cargo +stable install cargo-hack --locked
43-
- run: cargo hack test --feature-powerset --exclude-features max_level_off,max_level_error,max_level_warn,max_level_info,max_level_debug,max_level_trace,release_max_level_off,release_max_level_error,release_max_level_warn,release_max_level_info,release_max_level_debug,release_max_level_trace,kv_unstable,kv_unstable_sval,kv_unstable_std,kv_unstable_serde
38+
- uses: dtolnay/rust-toolchain@master
39+
with:
40+
toolchain: ${{ matrix.rust }}
41+
- uses: taiki-e/install-action@cargo-hack
42+
- run: cargo hack test --feature-powerset --exclude-features max_level_off,max_level_error,max_level_warn,max_level_info,max_level_debug,max_level_trace,release_max_level_off,release_max_level_error,release_max_level_warn,release_max_level_info,release_max_level_debug,release_max_level_trace
4443
- run: cargo run --verbose --manifest-path test_max_level_features/Cargo.toml
4544
- run: cargo run --verbose --manifest-path test_max_level_features/Cargo.toml --release
4645

@@ -49,11 +48,9 @@ jobs:
4948
runs-on: ubuntu-latest
5049
steps:
5150
- uses: actions/checkout@v4
52-
- name: Install toolchain
53-
run: |
54-
rustup update stable --no-self-update
55-
rustup default stable
56-
rustup component add clippy rustfmt
51+
- uses: dtolnay/rust-toolchain@stable
52+
with:
53+
components: clippy
5754
- run: cargo fmt -- --check
5855
- run: cargo fmt --manifest-path test_max_level_features/Cargo.toml -- --check
5956
- run: cargo clippy --verbose
@@ -64,25 +61,18 @@ jobs:
6461
runs-on: ubuntu-latest
6562
steps:
6663
- uses: actions/checkout@v4
67-
- name: Install toolchain
68-
run: |
69-
rustup update stable --no-self-update
70-
rustup default stable
71-
rustup component add rust-docs
64+
- uses: dtolnay/rust-toolchain@stable
7265
- name: Run rustdoc
7366
env:
7467
RUSTDOCFLAGS: "-D warnings"
75-
run: cargo doc --verbose --features std,serde,sval,sval_ref,value-bag,kv,kv_std,kv_sval,kv_serde
68+
run: cargo doc --verbose --features std,kv,kv_std,kv_sval,kv_serde
7669

7770
features:
7871
name: Feature check
7972
runs-on: ubuntu-latest
8073
steps:
8174
- uses: actions/checkout@v4
82-
- name: Install toolchain
83-
run: |
84-
rustup update nightly --no-self-update
85-
rustup default nightly
75+
- uses: dtolnay/rust-toolchain@nightly
8676
- run: cargo build --verbose -Z avoid-dev-deps --features kv
8777
- run: cargo build --verbose -Z avoid-dev-deps --features "kv std"
8878
- run: cargo build --verbose -Z avoid-dev-deps --features "kv kv_sval"
@@ -95,10 +85,7 @@ jobs:
9585
runs-on: ubuntu-latest
9686
steps:
9787
- uses: actions/checkout@v4
98-
- name: Install toolchain
99-
run: |
100-
rustup update nightly --no-self-update
101-
rustup default nightly
88+
- uses: dtolnay/rust-toolchain@nightly
10289
- run: cargo build --verbose -Z minimal-versions --features kv
10390
- run: cargo build --verbose -Z minimal-versions --features "kv std"
10491
- run: cargo build --verbose -Z minimal-versions --features "kv kv_sval"
@@ -111,12 +98,11 @@ jobs:
11198
runs-on: ubuntu-latest
11299
steps:
113100
- uses: actions/checkout@v4
114-
- name: Install toolchain
115-
run: |
116-
rustup update 1.61.0 --no-self-update
117-
rustup default 1.61.0
118-
cargo +stable install cargo-hack --locked
119-
- run: cargo hack test --feature-powerset --exclude-features max_level_off,max_level_error,max_level_warn,max_level_info,max_level_debug,max_level_trace,release_max_level_off,release_max_level_error,release_max_level_warn,release_max_level_info,release_max_level_debug,release_max_level_trace,kv_unstable,kv_unstable_sval,kv_unstable_std,kv_unstable_serde
101+
- uses: dtolnay/rust-toolchain@1.61.0
102+
with:
103+
components: clippy
104+
- uses: taiki-e/install-action@cargo-hack
105+
- run: cargo hack test --feature-powerset --exclude-features max_level_off,max_level_error,max_level_warn,max_level_info,max_level_debug,max_level_trace,release_max_level_off,release_max_level_error,release_max_level_warn,release_max_level_info,release_max_level_debug,release_max_level_trace
120106
- run: cargo run --verbose --manifest-path test_max_level_features/Cargo.toml
121107
- run: cargo run --verbose --manifest-path test_max_level_features/Cargo.toml --release
122108

@@ -125,10 +111,7 @@ jobs:
125111
runs-on: ubuntu-latest
126112
steps:
127113
- uses: actions/checkout@v4
128-
- name: Install toolchain
129-
run: |
130-
rustup update stable --no-self-update
131-
rustup default stable
114+
- uses: dtolnay/rust-toolchain@stable
132115
- run: rustup target add thumbv6m-none-eabi riscv32imc-unknown-none-elf
133116
- run: cargo build --verbose --target=thumbv6m-none-eabi
134117
- run: cargo build --verbose --target=riscv32imc-unknown-none-elf

Cargo.toml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,12 @@ std = []
3939
kv = []
4040
kv_sval = ["kv", "value-bag/sval", "sval", "sval_ref"]
4141
kv_std = ["std", "kv", "value-bag/error"]
42-
kv_serde = ["kv_std", "value-bag/serde", "serde"]
42+
kv_serde = ["kv_std", "value-bag/serde", "serde_core"]
43+
44+
# This is here to not break backwards compatibility with the implicit feature
45+
# that enables support for serde based on the dependency name. Since we're now
46+
# using serde_core, the implicit feature was renamed, this adds back an alias.
47+
serde = ["serde_core"]
4348

4449
# Deprecated: use `kv_*` instead
4550
# These `*_unstable` features will be removed in a future release
@@ -49,7 +54,7 @@ kv_unstable_std = ["kv_std", "kv_unstable"]
4954
kv_unstable_serde = ["kv_serde", "kv_unstable_std"]
5055

5156
[dependencies]
52-
serde = { version = "1.0", optional = true, default-features = false }
57+
serde_core = { version = "1.0", optional = true, default-features = false }
5358
sval = { version = "2.14.1", optional = true, default-features = false }
5459
sval_ref = { version = "2.1", optional = true, default-features = false }
5560
value-bag = { version = "1.7", optional = true, default-features = false, features = ["inline-i128"] }

src/__private_api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ mod kv_support {
142142
}
143143

144144
#[cfg(feature = "kv_serde")]
145-
pub fn capture_serde<'a, V: serde::Serialize + ?Sized>(v: &'a &'a V) -> Value<'a> {
145+
pub fn capture_serde<'a, V: serde_core::Serialize + ?Sized>(v: &'a &'a V) -> Value<'a> {
146146
Value::from_serde(v)
147147
}
148148
}

src/kv/key.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,26 @@ use std::fmt;
66
/// A type that can be converted into a [`Key`](struct.Key.html).
77
pub trait ToKey {
88
/// Perform the conversion.
9-
fn to_key(&self) -> Key;
9+
fn to_key(&self) -> Key<'_>;
1010
}
1111

12-
impl<'a, T> ToKey for &'a T
12+
impl<T> ToKey for &T
1313
where
1414
T: ToKey + ?Sized,
1515
{
16-
fn to_key(&self) -> Key {
16+
fn to_key(&self) -> Key<'_> {
1717
(**self).to_key()
1818
}
1919
}
2020

2121
impl<'k> ToKey for Key<'k> {
22-
fn to_key(&self) -> Key {
22+
fn to_key(&self) -> Key<'_> {
2323
Key { key: self.key }
2424
}
2525
}
2626

2727
impl ToKey for str {
28-
fn to_key(&self) -> Key {
28+
fn to_key(&self) -> Key<'_> {
2929
Key::from_str(self)
3030
}
3131
}
@@ -41,6 +41,7 @@ pub struct Key<'k> {
4141

4242
impl<'k> Key<'k> {
4343
/// Get a key from a borrowed string.
44+
#[allow(clippy::should_implement_trait)] // Part of the public API now.
4445
pub fn from_str(key: &'k str) -> Self {
4546
Key { key }
4647
}
@@ -96,13 +97,13 @@ mod std_support {
9697
use std::borrow::Cow;
9798

9899
impl ToKey for String {
99-
fn to_key(&self) -> Key {
100+
fn to_key(&self) -> Key<'_> {
100101
Key::from_str(self)
101102
}
102103
}
103104

104105
impl<'a> ToKey for Cow<'a, str> {
105-
fn to_key(&self) -> Key {
106+
fn to_key(&self) -> Key<'_> {
106107
Key::from_str(self)
107108
}
108109
}
@@ -135,7 +136,7 @@ mod sval_support {
135136
mod serde_support {
136137
use super::*;
137138

138-
use serde::{Serialize, Serializer};
139+
use serde_core::{Serialize, Serializer};
139140

140141
impl<'a> Serialize for Key<'a> {
141142
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>

src/kv/source.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ fn count_default(source: impl Source) -> usize {
127127
count.0
128128
}
129129

130-
impl<'a, T> Source for &'a T
130+
impl<T> Source for &T
131131
where
132132
T: Source + ?Sized,
133133
{
@@ -237,6 +237,7 @@ pub trait VisitSource<'kvs> {
237237
fn visit_pair(&mut self, key: Key<'kvs>, value: Value<'kvs>) -> Result<(), Error>;
238238
}
239239

240+
#[allow(clippy::needless_lifetimes)] // Not needless.
240241
impl<'a, 'kvs, T> VisitSource<'kvs> for &'a mut T
241242
where
242243
T: VisitSource<'kvs> + ?Sized,

src/kv/value.rs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@ pub use crate::kv::Error;
1010
/// A type that can be converted into a [`Value`](struct.Value.html).
1111
pub trait ToValue {
1212
/// Perform the conversion.
13-
fn to_value(&self) -> Value;
13+
fn to_value(&self) -> Value<'_>;
1414
}
1515

16-
impl<'a, T> ToValue for &'a T
16+
impl<T> ToValue for &T
1717
where
1818
T: ToValue + ?Sized,
1919
{
20-
fn to_value(&self) -> Value {
20+
fn to_value(&self) -> Value<'_> {
2121
(**self).to_value()
2222
}
2323
}
2424

2525
impl<'v> ToValue for Value<'v> {
26-
fn to_value(&self) -> Value {
26+
fn to_value(&self) -> Value<'_> {
2727
Value {
2828
inner: self.inner.clone(),
2929
}
@@ -153,7 +153,7 @@ impl<'v> Value<'v> {
153153
#[cfg(feature = "kv_serde")]
154154
pub fn from_serde<T>(value: &'v T) -> Self
155155
where
156-
T: serde::Serialize,
156+
T: serde_core::Serialize,
157157
{
158158
Value {
159159
inner: inner::Inner::from_serde1(value),
@@ -232,10 +232,10 @@ impl<'v> fmt::Display for Value<'v> {
232232
}
233233

234234
#[cfg(feature = "kv_serde")]
235-
impl<'v> serde::Serialize for Value<'v> {
235+
impl<'v> serde_core::Serialize for Value<'v> {
236236
fn serialize<S>(&self, s: S) -> Result<S::Ok, S::Error>
237237
where
238-
S: serde::Serializer,
238+
S: serde_core::Serializer,
239239
{
240240
self.inner.serialize(s)
241241
}
@@ -256,7 +256,7 @@ impl<'v> sval_ref::ValueRef<'v> for Value<'v> {
256256
}
257257

258258
impl ToValue for str {
259-
fn to_value(&self) -> Value {
259+
fn to_value(&self) -> Value<'_> {
260260
Value::from(self)
261261
}
262262
}
@@ -268,7 +268,7 @@ impl<'v> From<&'v str> for Value<'v> {
268268
}
269269

270270
impl ToValue for () {
271-
fn to_value(&self) -> Value {
271+
fn to_value(&self) -> Value<'_> {
272272
Value::from_inner(())
273273
}
274274
}
@@ -277,7 +277,7 @@ impl<T> ToValue for Option<T>
277277
where
278278
T: ToValue,
279279
{
280-
fn to_value(&self) -> Value {
280+
fn to_value(&self) -> Value<'_> {
281281
match *self {
282282
Some(ref value) => value.to_value(),
283283
None => Value::from_inner(()),
@@ -289,7 +289,7 @@ macro_rules! impl_to_value_primitive {
289289
($($into_ty:ty,)*) => {
290290
$(
291291
impl ToValue for $into_ty {
292-
fn to_value(&self) -> Value {
292+
fn to_value(&self) -> Value<'_> {
293293
Value::from(*self)
294294
}
295295
}
@@ -313,7 +313,7 @@ macro_rules! impl_to_value_nonzero_primitive {
313313
($($into_ty:ident,)*) => {
314314
$(
315315
impl ToValue for std::num::$into_ty {
316-
fn to_value(&self) -> Value {
316+
fn to_value(&self) -> Value<'_> {
317317
Value::from(self.get())
318318
}
319319
}
@@ -398,7 +398,7 @@ mod std_support {
398398
where
399399
T: ToValue + ?Sized,
400400
{
401-
fn to_value(&self) -> Value {
401+
fn to_value(&self) -> Value<'_> {
402402
(**self).to_value()
403403
}
404404
}
@@ -407,7 +407,7 @@ mod std_support {
407407
where
408408
T: ToValue + ?Sized,
409409
{
410-
fn to_value(&self) -> Value {
410+
fn to_value(&self) -> Value<'_> {
411411
(**self).to_value()
412412
}
413413
}
@@ -416,19 +416,19 @@ mod std_support {
416416
where
417417
T: ToValue + ?Sized,
418418
{
419-
fn to_value(&self) -> Value {
419+
fn to_value(&self) -> Value<'_> {
420420
(**self).to_value()
421421
}
422422
}
423423

424424
impl ToValue for String {
425-
fn to_value(&self) -> Value {
425+
fn to_value(&self) -> Value<'_> {
426426
Value::from(&**self)
427427
}
428428
}
429429

430430
impl<'v> ToValue for Cow<'v, str> {
431-
fn to_value(&self) -> Value {
431+
fn to_value(&self) -> Value<'_> {
432432
Value::from(&**self)
433433
}
434434
}
@@ -535,6 +535,7 @@ pub trait VisitValue<'v> {
535535
}
536536
}
537537

538+
#[allow(clippy::needless_lifetimes)] // Not needless.
538539
impl<'a, 'v, T: ?Sized> VisitValue<'v> for &'a mut T
539540
where
540541
T: VisitValue<'v>,
@@ -1083,7 +1084,7 @@ impl<'v> Value<'v> {
10831084
#[deprecated(note = "use `from_serde` instead")]
10841085
pub fn capture_serde<T>(value: &'v T) -> Self
10851086
where
1086-
T: serde::Serialize + 'static,
1087+
T: serde_core::Serialize + 'static,
10871088
{
10881089
Value::from_serde(value)
10891090
}

0 commit comments

Comments
 (0)