Skip to content

Commit d97f40c

Browse files
committed
Formatting & readability improvements
1 parent 2cf3851 commit d97f40c

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

0 commit comments

Comments
 (0)