From f8f80c16598227052f756c0c1d7e0c8b1254e51e Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Mon, 23 Jul 2018 23:18:08 +0200 Subject: [PATCH] Use BigInteger for int128 and int256 --- .../lonamiwebs/overgram/generator/Generator.java | 10 +++++++--- .../io/github/lonamiwebs/overgram/parser/TLArg.java | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/generator/src/main/java/io/github/lonamiwebs/overgram/generator/Generator.java b/generator/src/main/java/io/github/lonamiwebs/overgram/generator/Generator.java index 886fda2..22f35a4 100644 --- a/generator/src/main/java/io/github/lonamiwebs/overgram/generator/Generator.java +++ b/generator/src/main/java/io/github/lonamiwebs/overgram/generator/Generator.java @@ -54,6 +54,7 @@ public class Generator { writer.write("import io.github.lonamiwebs.overgram.utils.BinaryReader;\n"); writer.write("import io.github.lonamiwebs.overgram.utils.BinaryWriter;\n"); writer.write("import java.util.List;\n"); + writer.write("import java.math.BigInteger;\n"); writer.write("@SuppressWarnings(\"ALL\")\n"); writer.write("public class "); writer.write(className); @@ -251,11 +252,14 @@ public class Generator { writer.write("reader.readInt();"); break; case "long": - // TODO handle int128 and int256 properly - case "int128": - case "int256": writer.write("reader.readLong();"); break; + case "int128": + writer.write("reader.readInt128();"); + break; + case "int256": + writer.write("reader.readInt256();"); + break; case "double": writer.write("reader.readDouble();"); break; diff --git a/generator/src/main/java/io/github/lonamiwebs/overgram/parser/TLArg.java b/generator/src/main/java/io/github/lonamiwebs/overgram/parser/TLArg.java index 2a16158..b4a5cb6 100644 --- a/generator/src/main/java/io/github/lonamiwebs/overgram/parser/TLArg.java +++ b/generator/src/main/java/io/github/lonamiwebs/overgram/parser/TLArg.java @@ -78,15 +78,16 @@ public class TLArg { } break; case "long": - // TODO handle int128 and int256 properly - case "int128": - case "int256": if (flag == null && !nested) { builder.append("long"); } else { builder.append("Long"); } break; + case "int128": + case "int256": + builder.append("BigInteger"); + break; case "double": if (flag == null && !nested) { builder.append("double");