feat[swift]: cut down Set serialization of swift

This commit is contained in:
godotg
2024-07-28 21:54:48 +08:00
parent a685de104e
commit 65a4bcb1d3
2 changed files with 211 additions and 10 deletions
@@ -56,7 +56,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeBoolArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeBoolSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -89,7 +89,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeByteArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeByteSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -122,7 +122,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeShortArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeShortSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -155,7 +155,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeIntArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeIntSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -188,7 +188,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeLongArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeLongSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -218,7 +218,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeFloatArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeFloatSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -249,7 +249,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeDoubleArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeDoubleSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -283,7 +283,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case GdScript:
builder.append(StringUtils.format("buffer.writeStringArray({})", objectStr)).append(LS);
break;
case Kotlin, Scala, Python, Ruby:
case Kotlin, Scala, Python, Ruby, Swift:
builder.append(StringUtils.format("buffer.writeStringSet({})", objectStr)).append(LS);
break;
case Lua:
@@ -334,7 +334,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Java:
builder.append(StringUtils.format("buffer.writePacketSet({}, (short) {});", objectStr, protocolId)).append(LS);
break;
case Rust, Golang, Protobuf:
case Rust, Swift, Golang, Protobuf:
default:
flag = false;
}
@@ -362,6 +362,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Rust:
builder.append(StringUtils.format("let {} = buffer.readBoolSet();", set)).append(LS);
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readBoolSet()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readBoolArray()", set)).append(LS);
break;
@@ -408,6 +411,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Rust:
builder.append(StringUtils.format("let {} = buffer.readByteSet();", set)).append(LS);
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readByteSet()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readByteArray()", set)).append(LS);
break;
@@ -454,6 +460,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Rust:
builder.append(StringUtils.format("let {} = buffer.readShortSet();", set)).append(LS);
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readShortSet()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readShortArray()", set)).append(LS);
break;
@@ -500,6 +509,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Rust:
builder.append(StringUtils.format("let {} = buffer.readIntSet();", set)).append(LS);
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readIntSet()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readIntArray()", set)).append(LS);
break;
@@ -546,6 +558,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Rust:
builder.append(StringUtils.format("let {} = buffer.readLongSet();", set)).append(LS);
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readLongSet()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readLongArray()", set)).append(LS);
break;
@@ -589,6 +604,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Enhance:
builder.append(StringUtils.format("Set {} = {}.readFloatSet($1);", set, EnhanceUtils.byteBufUtils));
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readFloatArray()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readFloatArray()", set)).append(LS);
break;
@@ -633,6 +651,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Enhance:
builder.append(StringUtils.format("Set {} = {}.readDoubleSet($1);", set, EnhanceUtils.byteBufUtils));
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readDoubleArray()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readDoubleArray()", set)).append(LS);
break;
@@ -680,6 +701,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case Rust:
builder.append(StringUtils.format("let {} = buffer.readStringSet();", set)).append(LS);
break;
case Swift:
builder.append(StringUtils.format("let {} = buffer.readStringSet()", set)).append(LS);
break;
case GdScript:
builder.append(StringUtils.format("var {} = buffer.readStringArray()", set)).append(LS);
break;
@@ -760,7 +784,7 @@ public class CutDownSetSerializer implements ICutDownSerializer {
case JavaScript, EcmaScript, TypeScript:
builder.append(StringUtils.format("const {} = buffer.readPacketSet({});", set, protocolId)).append(LS);
break;
case Rust, Golang, Protobuf:
case Rust, Swift, Golang, Protobuf:
default:
flag = false;
}
@@ -569,4 +569,181 @@ class ByteBuffer {
}
return array
}
func writeBoolSet(_ set: Set<Bool>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeBool(ele)
}
}
}
func readBoolSet() -> Set<Bool> {
let size = readInt()
var set = Set<Bool>()
if (size > 0) {
for _ in 0..<size {
set.insert(readBool())
}
}
return set
}
func writeByteSet(_ set: Set<Int8>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeByte(ele)
}
}
}
func readByteSet() -> Set<Int8> {
let size = readInt()
var set = Set<Int8>()
if (size > 0) {
for _ in 0..<size {
set.insert(readByte())
}
}
return set
}
func writeShortSet(_ set: Set<Int16>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeShort(ele)
}
}
}
func readShortSet() -> Set<Int16> {
let size = readInt()
var set = Set<Int16>()
if (size > 0) {
for _ in 0..<size {
set.insert(readShort())
}
}
return set
}
func writeIntSet(_ set: Set<Int>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeInt(ele)
}
}
}
func readIntSet() -> Set<Int> {
let size = readInt()
var set = Set<Int>()
if (size > 0) {
for _ in 0..<size {
set.insert(readInt())
}
}
return set
}
func writeLongSet(_ set: Set<Int64>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeLong(ele)
}
}
}
func readLongSet() -> Set<Int64> {
let size = readInt()
var set = Set<Int64>()
if (size > 0) {
for _ in 0..<size {
set.insert(readLong())
}
}
return set
}
func writeFloatSet(_ set: Set<Float32>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeFloat(ele)
}
}
}
func readFloatSet() -> Set<Float32> {
let size = readInt()
var set = Set<Float32>()
if (size > 0) {
for _ in 0..<size {
set.insert(readFloat())
}
}
return set
}
func writeDoubleSet(_ set: Set<Float64>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeDouble(ele)
}
}
}
func readDoubleSet() -> Set<Float64> {
let size = readInt()
var set = Set<Float64>()
if (size > 0) {
for _ in 0..<size {
set.insert(readDouble())
}
}
return set
}
func writeStringSet(_ set: Set<String>) {
if (set.isEmpty) {
writeInt(0)
} else {
writeInt(set.count)
for ele in set {
writeString(ele)
}
}
}
func readStringSet() -> Set<String> {
let size = readInt()
var set = Set<String>()
if (size > 0) {
for _ in 0..<size {
set.insert(readString())
}
}
return set
}
}