28a092261b
warning: struct `Cows` is never constructed --> test_suite/tests/test_borrow.rs:165:12 | 165 | struct Cows<'a, 'b> { | ^^^^ warning: struct `Wrap` is never constructed --> test_suite/tests/test_borrow.rs:181:12 | 181 | struct Wrap<'a, 'b> { | ^^^^ warning: struct `StructSkipDefaultGeneric` is never constructed --> test_suite/tests/test_de.rs:96:8 | 96 | struct StructSkipDefaultGeneric<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: struct `NonAsciiIdents` is never constructed --> test_suite/tests/test_gen.rs:290:12 | 290 | struct NonAsciiIdents { | ^^^^^^^^^^^^^^ | note: the lint level is defined here --> test_suite/tests/test_gen.rs:5:9 | 5 | #![deny(warnings)] | ^^^^^^^^ = note: `#[warn(dead_code)]` implied by `#[warn(warnings)]` warning: struct `EmptyBraced` is never constructed --> test_suite/tests/test_gen.rs:295:12 | 295 | struct EmptyBraced {} | ^^^^^^^^^^^ warning: struct `EmptyBracedDenyUnknown` is never constructed --> test_suite/tests/test_gen.rs:299:12 | 299 | struct EmptyBracedDenyUnknown {} | ^^^^^^^^^^^^^^^^^^^^^^ warning: struct `BracedSkipAll` is never constructed --> test_suite/tests/test_gen.rs:302:12 | 302 | struct BracedSkipAll { | ^^^^^^^^^^^^^ warning: struct `BracedSkipAllDenyUnknown` is never constructed --> test_suite/tests/test_gen.rs:309:12 | 309 | struct BracedSkipAllDenyUnknown { | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: struct `EmptyTuple` is never constructed --> test_suite/tests/test_gen.rs:315:12 | 315 | struct EmptyTuple(); | ^^^^^^^^^^ warning: struct `EmptyTupleDenyUnknown` is never constructed --> test_suite/tests/test_gen.rs:319:12 | 319 | struct EmptyTupleDenyUnknown(); | ^^^^^^^^^^^^^^^^^^^^^ warning: struct `TupleSkipAll` is never constructed --> test_suite/tests/test_gen.rs:322:12 | 322 | struct TupleSkipAll(#[serde(skip_deserializing)] u8); | ^^^^^^^^^^^^ warning: struct `TupleSkipAllDenyUnknown` is never constructed --> test_suite/tests/test_gen.rs:326:12 | 326 | struct TupleSkipAllDenyUnknown(#[serde(skip_deserializing)] u8); | ^^^^^^^^^^^^^^^^^^^^^^^ warning: enum `EmptyEnum` is never used --> test_suite/tests/test_gen.rs:329:10 | 329 | enum EmptyEnum {} | ^^^^^^^^^ warning: enum `EmptyEnumDenyUnknown` is never used --> test_suite/tests/test_gen.rs:333:10 | 333 | enum EmptyEnumDenyUnknown {} | ^^^^^^^^^^^^^^^^^^^^ warning: enum `EnumSkipAll` is never used --> test_suite/tests/test_gen.rs:336:10 | 336 | enum EnumSkipAll { | ^^^^^^^^^^^ warning: enum `EmptyVariants` is never used --> test_suite/tests/test_gen.rs:343:10 | 343 | enum EmptyVariants { | ^^^^^^^^^^^^^ warning: enum `EmptyVariantsDenyUnknown` is never used --> test_suite/tests/test_gen.rs:355:10 | 355 | enum EmptyVariantsDenyUnknown { | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: struct `UnitDenyUnknown` is never constructed --> test_suite/tests/test_gen.rs:367:12 | 367 | struct UnitDenyUnknown; | ^^^^^^^^^^^^^^^ warning: struct `EmptyArray` is never constructed --> test_suite/tests/test_gen.rs:370:12 | 370 | struct EmptyArray { | ^^^^^^^^^^ warning: enum `Or` is never used --> test_suite/tests/test_gen.rs:374:10 | 374 | enum Or<A, B> { | ^^ warning: enum `OrDef` is never used --> test_suite/tests/test_gen.rs:381:10 | 381 | enum OrDef<A, B> { | ^^^^^ warning: struct `Str` is never constructed --> test_suite/tests/test_gen.rs:386:12 | 386 | struct Str<'a>(&'a str); | ^^^ warning: struct `StrDef` is never constructed --> test_suite/tests/test_gen.rs:390:12 | 390 | struct StrDef<'a>(&'a str); | ^^^^^^ warning: struct `Remote` is never constructed --> test_suite/tests/test_gen.rs:393:12 | 393 | struct Remote<'a> { | ^^^^^^ warning: enum `BorrowVariant` is never used --> test_suite/tests/test_gen.rs:401:10 | 401 | enum BorrowVariant<'a> { | ^^^^^^^^^^^^^ warning: struct `RemoteVisibility` is never constructed --> test_suite/tests/test_gen.rs:418:12 | 418 | struct RemoteVisibility { | ^^^^^^^^^^^^^^^^ warning: struct `FlattenDenyUnknown` is never constructed --> test_suite/tests/test_gen.rs:551:12 | 551 | struct FlattenDenyUnknown<T> { | ^^^^^^^^^^^^^^^^^^ warning: struct `StaticStrStruct` is never constructed --> test_suite/tests/test_gen.rs:557:12 | 557 | struct StaticStrStruct<'a> { | ^^^^^^^^^^^^^^^ warning: struct `StaticStrTupleStruct` is never constructed --> test_suite/tests/test_gen.rs:563:12 | 563 | struct StaticStrTupleStruct<'a>(&'a str, &'static str); | ^^^^^^^^^^^^^^^^^^^^ warning: struct `StaticStrNewtypeStruct` is never constructed --> test_suite/tests/test_gen.rs:566:12 | 566 | struct StaticStrNewtypeStruct(&'static str); | ^^^^^^^^^^^^^^^^^^^^^^ warning: enum `StaticStrEnum` is never used --> test_suite/tests/test_gen.rs:569:10 | 569 | enum StaticStrEnum<'a> { | ^^^^^^^^^^^^^ warning: enum `AdjacentlyTaggedVoid` is never used --> test_suite/tests/test_gen.rs:652:10 | 652 | enum AdjacentlyTaggedVoid {} | ^^^^^^^^^^^^^^^^^^^^ warning: struct `ImplicitlyBorrowedOption` is never constructed --> test_suite/tests/test_gen.rs:665:12 | 665 | struct ImplicitlyBorrowedOption<'a> { | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: enum `UntaggedNewtypeVariantWith` is never used --> test_suite/tests/test_gen.rs:672:10 | 672 | enum UntaggedNewtypeVariantWith { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: struct `TransparentWith` is never constructed --> test_suite/tests/test_gen.rs:682:12 | 682 | struct TransparentWith { | ^^^^^^^^^^^^^^^ warning: struct `FlattenSkipSerializing` is never constructed --> test_suite/tests/test_gen.rs:712:12 | 712 | struct FlattenSkipSerializing<T> { | ^^^^^^^^^^^^^^^^^^^^^^ warning: struct `FlattenSkipSerializingIf` is never constructed --> test_suite/tests/test_gen.rs:719:12 | 719 | struct FlattenSkipSerializingIf<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: struct `FlattenSkipDeserializing` is never constructed --> test_suite/tests/test_gen.rs:725:12 | 725 | struct FlattenSkipDeserializing<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: enum `Message` is never used --> test_suite/tests/test_gen.rs:732:10 | 732 | enum Message { | ^^^^^^^ warning: struct `MacroRules` is never constructed --> test_suite/tests/test_gen.rs:751:20 | 751 | struct MacroRules<'a> { | ^^^^^^^^^^ ... 758 | deriving!(&'a str); | ------------------ in this macro invocation | = note: this warning originates in the macro `deriving` (in Nightly builds, run with -Z macro-backtrace for more info) warning: struct `BorrowLifetimeInsideMacro` is never constructed --> test_suite/tests/test_gen.rs:767:12 | 767 | struct BorrowLifetimeInsideMacro<'a> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ warning: struct `GenericUnitStruct` is never constructed --> test_suite/tests/test_gen.rs:782:12 | 782 | struct GenericUnitStruct<const N: usize>; | ^^^^^^^^^^^^^^^^^ warning: enum `InternallyTagged` is never used --> test_suite/tests/test_gen.rs:869:6 | 869 | enum InternallyTagged { | ^^^^^^^^^^^^^^^^ warning: function `deserialize_generic` is never used --> test_suite/tests/test_gen.rs:880:4 | 880 | fn deserialize_generic<'de, T, D>(deserializer: D) -> StdResult<T, D::Error> | ^^^^^^^^^^^^^^^^^^^ warning: struct `Restricted` is never constructed --> test_suite/tests/test_gen.rs:643:20 | 643 | struct Restricted { | ^^^^^^^^^^ warning: struct `Test` is never constructed --> test_suite/tests/test_remote.rs:95:8 | 95 | struct Test { | ^^^^ warning: struct `UnitDef` is never constructed --> test_suite/tests/test_remote.rs:135:8 | 135 | struct UnitDef; | ^^^^^^^ warning: struct `PrimitivePubDef` is never constructed --> test_suite/tests/test_remote.rs:143:8 | 143 | struct PrimitivePubDef(u8); | ^^^^^^^^^^^^^^^ warning: struct `NewtypePubDef` is never constructed --> test_suite/tests/test_remote.rs:151:8 | 151 | struct NewtypePubDef(#[serde(with = "UnitDef")] remote::Unit); | ^^^^^^^^^^^^^ warning: struct `TuplePubDef` is never constructed --> test_suite/tests/test_remote.rs:162:8 | 162 | struct TuplePubDef(u8, #[serde(with = "UnitDef")] remote::Unit); | ^^^^^^^^^^^ warning: struct `StructPubDef` is never constructed --> test_suite/tests/test_remote.rs:177:8 | 177 | struct StructPubDef { | ^^^^^^^^^^^^ warning: struct `StructConcrete` is never constructed --> test_suite/tests/test_remote.rs:193:8 | 193 | struct StructConcrete { | ^^^^^^^^^^^^^^ warning: enum `EnumConcrete` is never used --> test_suite/tests/test_remote.rs:199:6 | 199 | enum EnumConcrete { | ^^^^^^^^^^^^ warning: enum `ErrorKind` is never used --> test_suite/tests/test_remote.rs:204:6 | 204 | enum ErrorKind { | ^^^^^^^^^ warning: enum `ErrorKindDef` is never used --> test_suite/tests/test_remote.rs:214:6 | 214 | enum ErrorKindDef { | ^^^^^^^^^^^^ warning: struct `PrimitivePub` is never constructed --> test_suite/tests/test_remote.rs:10:16 | 10 | pub struct PrimitivePub(pub u8); | ^^^^^^^^^^^^ warning: struct `NewtypePub` is never constructed --> test_suite/tests/test_remote.rs:14:16 | 14 | pub struct NewtypePub(pub Unit); | ^^^^^^^^^^ warning: struct `TuplePub` is never constructed --> test_suite/tests/test_remote.rs:18:16 | 18 | pub struct TuplePub(pub u8, pub Unit); | ^^^^^^^^ warning: struct `StructPub` is never constructed --> test_suite/tests/test_remote.rs:25:16 | 25 | pub struct StructPub { | ^^^^^^^^^ warning: enum `EnumGeneric` is never used --> test_suite/tests/test_remote.rs:89:14 | 89 | pub enum EnumGeneric<T> { | ^^^^^^^^^^^ warning: struct `Tuple` is never constructed --> test_suite/tests/test_self.rs:44:12 | 44 | struct Tuple( | ^^^^^ warning: associated items `ASSOC` and `assoc` are never used --> test_suite/tests/test_self.rs:52:15 | 51 | impl Tuple { | ---------- associated items in this implementation 52 | const ASSOC: usize = 1; | ^^^^^ 53 | const fn assoc() -> usize { | ^^^^^ warning: enum `Enum` is never used --> test_suite/tests/test_self.rs:63:10 | 63 | enum Enum { | ^^^^ warning: associated items `ASSOC` and `assoc` are never used --> test_suite/tests/test_self.rs:79:15 | 78 | impl Enum { | --------- associated items in this implementation 79 | const ASSOC: usize = 1; | ^^^^^ 80 | const fn assoc() -> usize { | ^^^^^ warning: struct `Unit` is never constructed --> test_suite/no_std/src/main.rs:26:8 | 26 | struct Unit; | ^^^^ warning: struct `Newtype` is never constructed --> test_suite/no_std/src/main.rs:29:8 | 29 | struct Newtype(u8); | ^^^^^^^ warning: struct `Tuple` is never constructed --> test_suite/no_std/src/main.rs:32:8 | 32 | struct Tuple(u8, u8); | ^^^^^ warning: struct `Struct` is never constructed --> test_suite/no_std/src/main.rs:35:8 | 35 | struct Struct { | ^^^^^^ warning: enum `Enum` is never used --> test_suite/no_std/src/main.rs:40:6 | 40 | enum Enum { | ^^^^
264 lines
5.7 KiB
Rust
264 lines
5.7 KiB
Rust
#![allow(clippy::redundant_field_names)]
|
|
|
|
use serde_derive::{Deserialize, Serialize};
|
|
|
|
mod remote {
|
|
pub struct Unit;
|
|
|
|
pub struct PrimitivePriv(u8);
|
|
|
|
#[allow(dead_code)]
|
|
pub struct PrimitivePub(pub u8);
|
|
|
|
pub struct NewtypePriv(Unit);
|
|
|
|
#[allow(dead_code)]
|
|
pub struct NewtypePub(pub Unit);
|
|
|
|
pub struct TuplePriv(u8, Unit);
|
|
|
|
#[allow(dead_code)]
|
|
pub struct TuplePub(pub u8, pub Unit);
|
|
|
|
pub struct StructPriv {
|
|
a: u8,
|
|
b: Unit,
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
pub struct StructPub {
|
|
pub a: u8,
|
|
pub b: Unit,
|
|
}
|
|
|
|
impl PrimitivePriv {
|
|
pub fn new(a: u8) -> Self {
|
|
PrimitivePriv(a)
|
|
}
|
|
|
|
pub fn get(&self) -> u8 {
|
|
self.0
|
|
}
|
|
}
|
|
|
|
impl NewtypePriv {
|
|
pub fn new(a: Unit) -> Self {
|
|
NewtypePriv(a)
|
|
}
|
|
|
|
pub fn get(&self) -> &Unit {
|
|
&self.0
|
|
}
|
|
}
|
|
|
|
impl TuplePriv {
|
|
pub fn new(a: u8, b: Unit) -> Self {
|
|
TuplePriv(a, b)
|
|
}
|
|
|
|
pub fn first(&self) -> u8 {
|
|
self.0
|
|
}
|
|
|
|
pub fn second(&self) -> &Unit {
|
|
&self.1
|
|
}
|
|
}
|
|
|
|
impl StructPriv {
|
|
pub fn new(a: u8, b: Unit) -> Self {
|
|
StructPriv { a: a, b: b }
|
|
}
|
|
|
|
pub fn a(&self) -> u8 {
|
|
self.a
|
|
}
|
|
|
|
pub fn b(&self) -> &Unit {
|
|
&self.b
|
|
}
|
|
}
|
|
|
|
pub struct StructGeneric<T> {
|
|
pub value: T,
|
|
}
|
|
|
|
impl<T> StructGeneric<T> {
|
|
#[allow(dead_code)]
|
|
pub fn get_value(&self) -> &T {
|
|
&self.value
|
|
}
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
pub enum EnumGeneric<T> {
|
|
Variant(T),
|
|
}
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[allow(dead_code)]
|
|
struct Test {
|
|
#[serde(with = "UnitDef")]
|
|
unit: remote::Unit,
|
|
|
|
#[serde(with = "PrimitivePrivDef")]
|
|
primitive_priv: remote::PrimitivePriv,
|
|
|
|
#[serde(with = "PrimitivePubDef")]
|
|
primitive_pub: remote::PrimitivePub,
|
|
|
|
#[serde(with = "NewtypePrivDef")]
|
|
newtype_priv: remote::NewtypePriv,
|
|
|
|
#[serde(with = "NewtypePubDef")]
|
|
newtype_pub: remote::NewtypePub,
|
|
|
|
#[serde(with = "TuplePrivDef")]
|
|
tuple_priv: remote::TuplePriv,
|
|
|
|
#[serde(with = "TuplePubDef")]
|
|
tuple_pub: remote::TuplePub,
|
|
|
|
#[serde(with = "StructPrivDef")]
|
|
struct_priv: remote::StructPriv,
|
|
|
|
#[serde(with = "StructPubDef")]
|
|
struct_pub: remote::StructPub,
|
|
|
|
#[serde(with = "StructConcrete")]
|
|
struct_concrete: remote::StructGeneric<u8>,
|
|
|
|
#[serde(with = "EnumConcrete")]
|
|
enum_concrete: remote::EnumGeneric<u8>,
|
|
|
|
#[serde(with = "ErrorKindDef")]
|
|
io_error_kind: ErrorKind,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::Unit")]
|
|
#[allow(dead_code)]
|
|
struct UnitDef;
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::PrimitivePriv")]
|
|
struct PrimitivePrivDef(#[serde(getter = "remote::PrimitivePriv::get")] u8);
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::PrimitivePub")]
|
|
#[allow(dead_code)]
|
|
struct PrimitivePubDef(u8);
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::NewtypePriv")]
|
|
struct NewtypePrivDef(#[serde(getter = "remote::NewtypePriv::get", with = "UnitDef")] remote::Unit);
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::NewtypePub")]
|
|
#[allow(dead_code)]
|
|
struct NewtypePubDef(#[serde(with = "UnitDef")] remote::Unit);
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::TuplePriv")]
|
|
struct TuplePrivDef(
|
|
#[serde(getter = "remote::TuplePriv::first")] u8,
|
|
#[serde(getter = "remote::TuplePriv::second", with = "UnitDef")] remote::Unit,
|
|
);
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::TuplePub")]
|
|
#[allow(dead_code)]
|
|
struct TuplePubDef(u8, #[serde(with = "UnitDef")] remote::Unit);
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::StructPriv")]
|
|
struct StructPrivDef {
|
|
#[serde(getter = "remote::StructPriv::a")]
|
|
a: u8,
|
|
|
|
#[serde(getter = "remote::StructPriv::b")]
|
|
#[serde(with = "UnitDef")]
|
|
b: remote::Unit,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::StructPub")]
|
|
#[allow(dead_code)]
|
|
struct StructPubDef {
|
|
a: u8,
|
|
|
|
#[serde(with = "UnitDef")]
|
|
b: remote::Unit,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::StructGeneric")]
|
|
struct StructGenericWithGetterDef<T> {
|
|
#[serde(getter = "remote::StructGeneric::get_value")]
|
|
value: T,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::StructGeneric<u8>")]
|
|
#[allow(dead_code)]
|
|
struct StructConcrete {
|
|
value: u8,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "remote::EnumGeneric<u8>")]
|
|
#[allow(dead_code)]
|
|
enum EnumConcrete {
|
|
Variant(u8),
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
#[allow(dead_code)]
|
|
enum ErrorKind {
|
|
NotFound,
|
|
PermissionDenied,
|
|
#[allow(dead_code)]
|
|
ConnectionRefused,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
#[serde(remote = "ErrorKind")]
|
|
#[non_exhaustive]
|
|
#[allow(dead_code)]
|
|
enum ErrorKindDef {
|
|
NotFound,
|
|
PermissionDenied,
|
|
// ...
|
|
}
|
|
|
|
impl From<PrimitivePrivDef> for remote::PrimitivePriv {
|
|
fn from(def: PrimitivePrivDef) -> Self {
|
|
remote::PrimitivePriv::new(def.0)
|
|
}
|
|
}
|
|
|
|
impl From<NewtypePrivDef> for remote::NewtypePriv {
|
|
fn from(def: NewtypePrivDef) -> Self {
|
|
remote::NewtypePriv::new(def.0)
|
|
}
|
|
}
|
|
|
|
impl From<TuplePrivDef> for remote::TuplePriv {
|
|
fn from(def: TuplePrivDef) -> Self {
|
|
remote::TuplePriv::new(def.0, def.1)
|
|
}
|
|
}
|
|
|
|
impl From<StructPrivDef> for remote::StructPriv {
|
|
fn from(def: StructPrivDef) -> Self {
|
|
remote::StructPriv::new(def.a, def.b)
|
|
}
|
|
}
|
|
|
|
impl<T> From<StructGenericWithGetterDef<T>> for remote::StructGeneric<T> {
|
|
fn from(def: StructGenericWithGetterDef<T>) -> Self {
|
|
remote::StructGeneric { value: def.value }
|
|
}
|
|
}
|