Skip to content

Commit 270aee9

Browse files
committed
Formatting & readability improvements
1 parent e43f127 commit 270aee9

File tree

1 file changed

+69
-218
lines changed

1 file changed

+69
-218
lines changed

gdnative-core/src/core_types/variant.rs

Lines changed: 69 additions & 218 deletions
Original file line numberDiff line numberDiff line change
@@ -2026,172 +2026,50 @@ pub mod serde {
20262026
where
20272027
S: Serializer,
20282028
{
2029+
use VariantDispatch::*;
2030+
macro_rules! newtype_variant {
2031+
($t:expr, $v:expr) => {
2032+
ser.serialize_newtype_variant("VariantDispatch", $t as u32, $t.name(), $v)
2033+
};
2034+
}
20292035
match self {
2030-
VariantDispatch::Nil => ser.serialize_unit_variant(
2036+
Nil => ser.serialize_unit_variant(
20312037
"VariantDispatch",
20322038
VariantType::Nil as u32,
20332039
VariantType::Nil.name(),
20342040
),
2035-
VariantDispatch::Bool(v) => ser.serialize_newtype_variant(
2036-
"VariantDispatch",
2037-
VariantType::Bool as u32,
2038-
VariantType::Bool.name(),
2039-
v,
2040-
),
2041-
VariantDispatch::I64(v) => ser.serialize_newtype_variant(
2042-
"VariantDispatch",
2043-
VariantType::I64 as u32,
2044-
VariantType::I64.name(),
2045-
v,
2046-
),
2047-
VariantDispatch::F64(v) => ser.serialize_newtype_variant(
2048-
"VariantDispatch",
2049-
VariantType::F64 as u32,
2050-
VariantType::F64.name(),
2051-
v,
2052-
),
2053-
VariantDispatch::GodotString(v) => ser.serialize_newtype_variant(
2054-
"VariantDispatch",
2055-
VariantType::GodotString as u32,
2056-
VariantType::GodotString.name(),
2057-
v,
2058-
),
2059-
VariantDispatch::Vector2(v) => ser.serialize_newtype_variant(
2060-
"VariantDispatch",
2061-
VariantType::Vector2 as u32,
2062-
VariantType::Vector2.name(),
2063-
v,
2064-
),
2065-
VariantDispatch::Rect2(v) => ser.serialize_newtype_variant(
2066-
"VariantDispatch",
2067-
VariantType::Rect2 as u32,
2068-
VariantType::Rect2.name(),
2069-
v,
2070-
),
2071-
VariantDispatch::Vector3(v) => ser.serialize_newtype_variant(
2072-
"VariantDispatch",
2073-
VariantType::Vector3 as u32,
2074-
VariantType::Vector3.name(),
2075-
v,
2076-
),
2077-
VariantDispatch::Transform2D(v) => ser.serialize_newtype_variant(
2078-
"VariantDispatch",
2079-
VariantType::Transform2D as u32,
2080-
VariantType::Transform2D.name(),
2081-
v,
2082-
),
2083-
VariantDispatch::Plane(v) => ser.serialize_newtype_variant(
2084-
"VariantDispatch",
2085-
VariantType::Plane as u32,
2086-
VariantType::Plane.name(),
2087-
v,
2088-
),
2089-
VariantDispatch::Quat(v) => ser.serialize_newtype_variant(
2090-
"VariantDispatch",
2091-
VariantType::Quat as u32,
2092-
VariantType::Quat.name(),
2093-
v,
2094-
),
2095-
VariantDispatch::Aabb(v) => ser.serialize_newtype_variant(
2096-
"VariantDispatch",
2097-
VariantType::Aabb as u32,
2098-
VariantType::Aabb.name(),
2099-
v,
2100-
),
2101-
VariantDispatch::Basis(v) => ser.serialize_newtype_variant(
2102-
"VariantDispatch",
2103-
VariantType::Basis as u32,
2104-
VariantType::Basis.name(),
2105-
v,
2106-
),
2107-
VariantDispatch::Transform(v) => ser.serialize_newtype_variant(
2108-
"VariantDispatch",
2109-
VariantType::Transform as u32,
2110-
VariantType::Transform.name(),
2111-
v,
2112-
),
2113-
VariantDispatch::Color(v) => ser.serialize_newtype_variant(
2114-
"VariantDispatch",
2115-
VariantType::Color as u32,
2116-
VariantType::Color.name(),
2117-
v,
2118-
),
2119-
VariantDispatch::NodePath(v) => ser.serialize_newtype_variant(
2120-
"VariantDispatch",
2121-
VariantType::NodePath as u32,
2122-
VariantType::NodePath.name(),
2123-
v,
2124-
),
2125-
VariantDispatch::Rid(v) => ser.serialize_newtype_variant(
2126-
"VariantDispatch",
2127-
VariantType::Rid as u32,
2128-
VariantType::Rid.name(),
2129-
v,
2130-
),
2131-
VariantDispatch::Object(_) => ser.serialize_newtype_variant(
2132-
"VariantDispatch",
2133-
VariantType::Object as u32,
2134-
VariantType::Object.name(),
2135-
&Option::<()>::None,
2136-
),
2137-
VariantDispatch::Dictionary(v) => ser.serialize_newtype_variant(
2138-
"VariantDispatch",
2139-
VariantType::Dictionary as u32,
2140-
VariantType::Dictionary.name(),
2141-
&DictionaryDispatch(v.new_ref()),
2142-
),
2143-
VariantDispatch::VariantArray(v) => {
2041+
Bool(v) => newtype_variant!(VariantType::Bool, v),
2042+
I64(v) => newtype_variant!(VariantType::I64, v),
2043+
F64(v) => newtype_variant!(VariantType::F64, v),
2044+
GodotString(v) => newtype_variant!(VariantType::GodotString, v),
2045+
Vector2(v) => newtype_variant!(VariantType::Vector2, v),
2046+
Rect2(v) => newtype_variant!(VariantType::Rect2, v),
2047+
Vector3(v) => newtype_variant!(VariantType::Vector3, v),
2048+
Transform2D(v) => newtype_variant!(VariantType::Transform2D, v),
2049+
Plane(v) => newtype_variant!(VariantType::Plane, v),
2050+
Quat(v) => newtype_variant!(VariantType::Quat, v),
2051+
Aabb(v) => newtype_variant!(VariantType::Aabb, v),
2052+
Basis(v) => newtype_variant!(VariantType::Basis, v),
2053+
Transform(v) => newtype_variant!(VariantType::Transform, v),
2054+
Color(v) => newtype_variant!(VariantType::Color, v),
2055+
NodePath(v) => newtype_variant!(VariantType::NodePath, v),
2056+
Rid(v) => newtype_variant!(VariantType::Rid, v),
2057+
Object(_) => {
2058+
newtype_variant!(VariantType::Object, &Option::<()>::None)
2059+
}
2060+
Dictionary(v) => newtype_variant!(VariantType::Dictionary, v),
2061+
VariantArray(v) => {
21442062
//Allows serializing to non-self-describing formats by avoiding serializing `Variant`s
21452063
let vec = v.iter().map(|v| v.dispatch()).collect::<Vec<_>>();
2146-
ser.serialize_newtype_variant(
2147-
"VariantDispatch",
2148-
VariantType::VariantArray as u32,
2149-
VariantType::VariantArray.name(),
2150-
&vec,
2151-
)
2064+
newtype_variant!(VariantType::VariantArray, &vec)
21522065
}
2153-
VariantDispatch::ByteArray(v) => ser.serialize_newtype_variant(
2154-
"VariantDispatch",
2155-
VariantType::ByteArray as u32,
2156-
VariantType::ByteArray.name(),
2157-
v,
2158-
),
2159-
VariantDispatch::Int32Array(v) => ser.serialize_newtype_variant(
2160-
"VariantDispatch",
2161-
VariantType::Int32Array as u32,
2162-
VariantType::Int32Array.name(),
2163-
v,
2164-
),
2165-
VariantDispatch::Float32Array(v) => ser.serialize_newtype_variant(
2166-
"VariantDispatch",
2167-
VariantType::Float32Array as u32,
2168-
VariantType::Float32Array.name(),
2169-
v,
2170-
),
2171-
VariantDispatch::StringArray(v) => ser.serialize_newtype_variant(
2172-
"VariantDispatch",
2173-
VariantType::StringArray as u32,
2174-
VariantType::StringArray.name(),
2175-
v,
2176-
),
2177-
VariantDispatch::Vector2Array(v) => ser.serialize_newtype_variant(
2178-
"VariantDispatch",
2179-
VariantType::Vector2Array as u32,
2180-
VariantType::Vector2Array.name(),
2181-
v,
2182-
),
2183-
VariantDispatch::Vector3Array(v) => ser.serialize_newtype_variant(
2184-
"VariantDispatch",
2185-
VariantType::Vector3Array as u32,
2186-
VariantType::Vector3Array.name(),
2187-
v,
2188-
),
2189-
VariantDispatch::ColorArray(v) => ser.serialize_newtype_variant(
2190-
"VariantDispatch",
2191-
VariantType::ColorArray as u32,
2192-
VariantType::ColorArray.name(),
2193-
v,
2194-
),
2066+
ByteArray(v) => newtype_variant!(VariantType::ByteArray, v),
2067+
Int32Array(v) => newtype_variant!(VariantType::Int32Array, v),
2068+
Float32Array(v) => newtype_variant!(VariantType::Float32Array, v),
2069+
StringArray(v) => newtype_variant!(VariantType::StringArray, v),
2070+
Vector2Array(v) => newtype_variant!(VariantType::Vector2Array, v),
2071+
Vector3Array(v) => newtype_variant!(VariantType::Vector3Array, v),
2072+
ColorArray(v) => newtype_variant!(VariantType::ColorArray, v),
21952073
}
21962074
}
21972075
}
@@ -2208,76 +2086,49 @@ pub mod serde {
22082086
where
22092087
A: EnumAccess<'de>,
22102088
{
2211-
let val = data.variant()?;
2212-
Ok(match val {
2213-
(VariantType::Nil, variant) => {
2214-
variant.unit_variant()?;
2089+
let (t, v) = data.variant()?;
2090+
Ok(match t {
2091+
VariantType::Nil => {
2092+
v.unit_variant()?;
22152093
VariantDispatch::Nil
22162094
}
2217-
(VariantType::Bool, variant) => VariantDispatch::Bool(variant.newtype_variant()?),
2218-
(VariantType::I64, variant) => VariantDispatch::I64(variant.newtype_variant()?),
2219-
(VariantType::F64, variant) => VariantDispatch::F64(variant.newtype_variant()?),
2220-
(VariantType::GodotString, variant) => {
2221-
VariantDispatch::GodotString(variant.newtype_variant()?)
2222-
}
2223-
(VariantType::Vector2, variant) => {
2224-
VariantDispatch::Vector2(variant.newtype_variant()?)
2225-
}
2226-
(VariantType::Rect2, variant) => VariantDispatch::Rect2(variant.newtype_variant()?),
2227-
(VariantType::Vector3, variant) => {
2228-
VariantDispatch::Vector3(variant.newtype_variant()?)
2229-
}
2230-
(VariantType::Transform2D, variant) => {
2231-
VariantDispatch::Transform2D(variant.newtype_variant()?)
2232-
}
2233-
(VariantType::Plane, variant) => VariantDispatch::Plane(variant.newtype_variant()?),
2234-
(VariantType::Quat, variant) => VariantDispatch::Quat(variant.newtype_variant()?),
2235-
(VariantType::Aabb, variant) => VariantDispatch::Aabb(variant.newtype_variant()?),
2236-
(VariantType::Basis, variant) => VariantDispatch::Basis(variant.newtype_variant()?),
2237-
(VariantType::Transform, variant) => {
2238-
VariantDispatch::Transform(variant.newtype_variant()?)
2239-
}
2240-
(VariantType::Color, variant) => VariantDispatch::Color(variant.newtype_variant()?),
2241-
(VariantType::NodePath, variant) => {
2242-
VariantDispatch::NodePath(variant.newtype_variant()?)
2243-
}
2244-
(VariantType::Rid, variant) => VariantDispatch::Rid(variant.newtype_variant()?),
2245-
(VariantType::Object, variant) => {
2095+
VariantType::Bool => VariantDispatch::Bool(v.newtype_variant()?),
2096+
VariantType::I64 => VariantDispatch::I64(v.newtype_variant()?),
2097+
VariantType::F64 => VariantDispatch::F64(v.newtype_variant()?),
2098+
VariantType::GodotString => VariantDispatch::GodotString(v.newtype_variant()?),
2099+
VariantType::Vector2 => VariantDispatch::Vector2(v.newtype_variant()?),
2100+
VariantType::Rect2 => VariantDispatch::Rect2(v.newtype_variant()?),
2101+
VariantType::Vector3 => VariantDispatch::Vector3(v.newtype_variant()?),
2102+
VariantType::Transform2D => VariantDispatch::Transform2D(v.newtype_variant()?),
2103+
VariantType::Plane => VariantDispatch::Plane(v.newtype_variant()?),
2104+
VariantType::Quat => VariantDispatch::Quat(v.newtype_variant()?),
2105+
VariantType::Aabb => VariantDispatch::Aabb(v.newtype_variant()?),
2106+
VariantType::Basis => VariantDispatch::Basis(v.newtype_variant()?),
2107+
VariantType::Transform => VariantDispatch::Transform(v.newtype_variant()?),
2108+
VariantType::Color => VariantDispatch::Color(v.newtype_variant()?),
2109+
VariantType::NodePath => VariantDispatch::NodePath(v.newtype_variant()?),
2110+
VariantType::Rid => VariantDispatch::Rid(v.newtype_variant()?),
2111+
VariantType::Object => {
22462112
// should return None
2247-
VariantDispatch::Object(variant.newtype_variant::<Option<()>>()?.to_variant())
2113+
VariantDispatch::Object(v.newtype_variant::<Option<()>>()?.to_variant())
22482114
}
2249-
(VariantType::Dictionary, variant) => {
2250-
VariantDispatch::Dictionary(variant.newtype_variant::<DictionaryDispatch>()?.0)
2115+
VariantType::Dictionary => {
2116+
VariantDispatch::Dictionary(v.newtype_variant::<DictionaryDispatch>()?.0)
22512117
}
2252-
(VariantType::VariantArray, variant) => VariantDispatch::VariantArray(
2253-
variant
2254-
.newtype_variant::<Vec<VariantDispatch>>()?
2118+
VariantType::VariantArray => VariantDispatch::VariantArray(
2119+
v.newtype_variant::<Vec<VariantDispatch>>()?
22552120
.iter()
22562121
.map(Into::<Variant>::into)
22572122
.collect::<VariantArray<Unique>>()
22582123
.into_shared(),
22592124
),
2260-
(VariantType::ByteArray, variant) => {
2261-
VariantDispatch::ByteArray(variant.newtype_variant()?)
2262-
}
2263-
(VariantType::Int32Array, variant) => {
2264-
VariantDispatch::Int32Array(variant.newtype_variant()?)
2265-
}
2266-
(VariantType::Float32Array, variant) => {
2267-
VariantDispatch::Float32Array(variant.newtype_variant()?)
2268-
}
2269-
(VariantType::StringArray, variant) => {
2270-
VariantDispatch::StringArray(variant.newtype_variant()?)
2271-
}
2272-
(VariantType::Vector2Array, variant) => {
2273-
VariantDispatch::Vector2Array(variant.newtype_variant()?)
2274-
}
2275-
(VariantType::Vector3Array, variant) => {
2276-
VariantDispatch::Vector3Array(variant.newtype_variant()?)
2277-
}
2278-
(VariantType::ColorArray, variant) => {
2279-
VariantDispatch::ColorArray(variant.newtype_variant()?)
2280-
}
2125+
VariantType::ByteArray => VariantDispatch::ByteArray(v.newtype_variant()?),
2126+
VariantType::Int32Array => VariantDispatch::Int32Array(v.newtype_variant()?),
2127+
VariantType::Float32Array => VariantDispatch::Float32Array(v.newtype_variant()?),
2128+
VariantType::StringArray => VariantDispatch::StringArray(v.newtype_variant()?),
2129+
VariantType::Vector2Array => VariantDispatch::Vector2Array(v.newtype_variant()?),
2130+
VariantType::Vector3Array => VariantDispatch::Vector3Array(v.newtype_variant()?),
2131+
VariantType::ColorArray => VariantDispatch::ColorArray(v.newtype_variant()?),
22812132
})
22822133
}
22832134
}

0 commit comments

Comments
 (0)