From 368428cb94dd0ae3fe5bc01080e9252579b98605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Wed, 10 May 2023 05:33:17 +0200 Subject: [PATCH 01/35] Upgrade package.json dependencies (#7933) Co-authored-by: Derek Bailey --- package.json | 10 +- pnpm-lock.yaml | 302 +++++++++--------- .../arrays_test_complex_generated.cjs | 4 + tests/ts/foobar/tab.ts | 132 ++++++++ tests/ts/monster_test_generated.cjs | 8 + tests/ts/typescript_keywords_generated.cjs | 17 + .../union_vector/union_vector_generated.cjs | 4 + 7 files changed, 321 insertions(+), 156 deletions(-) create mode 100644 tests/ts/foobar/tab.ts diff --git a/package.json b/package.json index 13b430300dc..a226739aa0f 100644 --- a/package.json +++ b/package.json @@ -36,11 +36,11 @@ "homepage": "https://google.github.io/flatbuffers/", "dependencies": {}, "devDependencies": { - "@types/node": "18.15.11", - "@typescript-eslint/eslint-plugin": "^5.57.0", - "@typescript-eslint/parser": "^5.57.0", - "esbuild": "^0.17.14", - "eslint": "^8.37.0", + "@types/node": "18.16.3", + "@typescript-eslint/eslint-plugin": "^5.59.2", + "@typescript-eslint/parser": "^5.59.2", + "esbuild": "^0.17.18", + "eslint": "^8.39.0", "typescript": "5.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 45c645b440c..8dfe73dc88d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,28 +2,28 @@ lockfileVersion: '6.0' devDependencies: '@types/node': - specifier: 18.15.11 - version: 18.15.11 + specifier: 18.16.3 + version: 18.16.3 '@typescript-eslint/eslint-plugin': - specifier: ^5.57.0 - version: 5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3) + specifier: ^5.59.2 + version: 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/parser': - specifier: ^5.57.0 - version: 5.57.0(eslint@8.37.0)(typescript@5.0.3) + specifier: ^5.59.2 + version: 5.59.2(eslint@8.39.0)(typescript@5.0.4) esbuild: - specifier: ^0.17.14 - version: 0.17.14 + specifier: ^0.17.18 + version: 0.17.18 eslint: - specifier: ^8.37.0 - version: 8.37.0 + specifier: ^8.39.0 + version: 8.39.0 typescript: - specifier: 5.0.3 - version: 5.0.3 + specifier: 5.0.4 + version: 5.0.4 packages: - /@esbuild/android-arm64@0.17.14: - resolution: {integrity: sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==} + /@esbuild/android-arm64@0.17.18: + resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -31,8 +31,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.14: - resolution: {integrity: sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==} + /@esbuild/android-arm@0.17.18: + resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -40,8 +40,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.14: - resolution: {integrity: sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==} + /@esbuild/android-x64@0.17.18: + resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -49,8 +49,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.14: - resolution: {integrity: sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==} + /@esbuild/darwin-arm64@0.17.18: + resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -58,8 +58,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.14: - resolution: {integrity: sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==} + /@esbuild/darwin-x64@0.17.18: + resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -67,8 +67,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.14: - resolution: {integrity: sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==} + /@esbuild/freebsd-arm64@0.17.18: + resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -76,8 +76,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.14: - resolution: {integrity: sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==} + /@esbuild/freebsd-x64@0.17.18: + resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -85,8 +85,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.14: - resolution: {integrity: sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==} + /@esbuild/linux-arm64@0.17.18: + resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -94,8 +94,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.14: - resolution: {integrity: sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==} + /@esbuild/linux-arm@0.17.18: + resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -103,8 +103,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.14: - resolution: {integrity: sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==} + /@esbuild/linux-ia32@0.17.18: + resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -112,8 +112,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.14: - resolution: {integrity: sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==} + /@esbuild/linux-loong64@0.17.18: + resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -121,8 +121,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.14: - resolution: {integrity: sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==} + /@esbuild/linux-mips64el@0.17.18: + resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -130,8 +130,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.14: - resolution: {integrity: sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==} + /@esbuild/linux-ppc64@0.17.18: + resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -139,8 +139,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.14: - resolution: {integrity: sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==} + /@esbuild/linux-riscv64@0.17.18: + resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -148,8 +148,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.14: - resolution: {integrity: sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==} + /@esbuild/linux-s390x@0.17.18: + resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -157,8 +157,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.14: - resolution: {integrity: sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==} + /@esbuild/linux-x64@0.17.18: + resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -166,8 +166,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.14: - resolution: {integrity: sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==} + /@esbuild/netbsd-x64@0.17.18: + resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -175,8 +175,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.14: - resolution: {integrity: sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==} + /@esbuild/openbsd-x64@0.17.18: + resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -184,8 +184,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.14: - resolution: {integrity: sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==} + /@esbuild/sunos-x64@0.17.18: + resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -193,8 +193,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.14: - resolution: {integrity: sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==} + /@esbuild/win32-arm64@0.17.18: + resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -202,8 +202,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.14: - resolution: {integrity: sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==} + /@esbuild/win32-ia32@0.17.18: + resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -211,8 +211,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.14: - resolution: {integrity: sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==} + /@esbuild/win32-x64@0.17.18: + resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -220,18 +220,18 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.37.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.37.0 + eslint: 8.39.0 eslint-visitor-keys: 3.4.0 dev: true - /@eslint-community/regexpp@4.5.0: - resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + /@eslint-community/regexpp@4.5.1: + resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -252,8 +252,8 @@ packages: - supports-color dev: true - /@eslint/js@8.37.0: - resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==} + /@eslint/js@8.39.0: + resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -302,16 +302,16 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/node@18.15.11: - resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} + /@types/node@18.16.3: + resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} dev: true /@types/semver@7.3.13: resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} dev: true - /@typescript-eslint/eslint-plugin@5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==} + /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -321,25 +321,25 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/type-utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) debug: 4.3.4 - eslint: 8.37.0 + eslint: 8.39.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==} + /@typescript-eslint/parser@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -348,26 +348,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) debug: 4.3.4 - eslint: 8.37.0 - typescript: 5.0.3 + eslint: 8.39.0 + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.57.0: - resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==} + /@typescript-eslint/scope-manager@5.59.2: + resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 dev: true - /@typescript-eslint/type-utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==} + /@typescript-eslint/type-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -376,23 +376,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) debug: 4.3.4 - eslint: 8.37.0 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 + eslint: 8.39.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.57.0: - resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==} + /@typescript-eslint/types@5.59.2: + resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.57.0(typescript@5.0.3): - resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==} + /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): + resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -400,43 +400,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==} + /@typescript-eslint/utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - eslint: 8.37.0 + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + eslint: 8.39.0 eslint-scope: 5.1.1 - semver: 7.3.8 + semver: 7.5.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.57.0: - resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==} + /@typescript-eslint/visitor-keys@5.59.2: + resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/types': 5.59.2 eslint-visitor-keys: 3.4.0 dev: true @@ -569,34 +569,34 @@ packages: esutils: 2.0.3 dev: true - /esbuild@0.17.14: - resolution: {integrity: sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==} + /esbuild@0.17.18: + resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.14 - '@esbuild/android-arm64': 0.17.14 - '@esbuild/android-x64': 0.17.14 - '@esbuild/darwin-arm64': 0.17.14 - '@esbuild/darwin-x64': 0.17.14 - '@esbuild/freebsd-arm64': 0.17.14 - '@esbuild/freebsd-x64': 0.17.14 - '@esbuild/linux-arm': 0.17.14 - '@esbuild/linux-arm64': 0.17.14 - '@esbuild/linux-ia32': 0.17.14 - '@esbuild/linux-loong64': 0.17.14 - '@esbuild/linux-mips64el': 0.17.14 - '@esbuild/linux-ppc64': 0.17.14 - '@esbuild/linux-riscv64': 0.17.14 - '@esbuild/linux-s390x': 0.17.14 - '@esbuild/linux-x64': 0.17.14 - '@esbuild/netbsd-x64': 0.17.14 - '@esbuild/openbsd-x64': 0.17.14 - '@esbuild/sunos-x64': 0.17.14 - '@esbuild/win32-arm64': 0.17.14 - '@esbuild/win32-ia32': 0.17.14 - '@esbuild/win32-x64': 0.17.14 + '@esbuild/android-arm': 0.17.18 + '@esbuild/android-arm64': 0.17.18 + '@esbuild/android-x64': 0.17.18 + '@esbuild/darwin-arm64': 0.17.18 + '@esbuild/darwin-x64': 0.17.18 + '@esbuild/freebsd-arm64': 0.17.18 + '@esbuild/freebsd-x64': 0.17.18 + '@esbuild/linux-arm': 0.17.18 + '@esbuild/linux-arm64': 0.17.18 + '@esbuild/linux-ia32': 0.17.18 + '@esbuild/linux-loong64': 0.17.18 + '@esbuild/linux-mips64el': 0.17.18 + '@esbuild/linux-ppc64': 0.17.18 + '@esbuild/linux-riscv64': 0.17.18 + '@esbuild/linux-s390x': 0.17.18 + '@esbuild/linux-x64': 0.17.18 + '@esbuild/netbsd-x64': 0.17.18 + '@esbuild/openbsd-x64': 0.17.18 + '@esbuild/sunos-x64': 0.17.18 + '@esbuild/win32-arm64': 0.17.18 + '@esbuild/win32-ia32': 0.17.18 + '@esbuild/win32-x64': 0.17.18 dev: true /escape-string-regexp@4.0.0: @@ -612,8 +612,8 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + /eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -625,15 +625,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.37.0: - resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} + /eslint@8.39.0: + resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) - '@eslint-community/regexpp': 4.5.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@eslint-community/regexpp': 4.5.1 '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.37.0 + '@eslint/js': 8.39.0 '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -643,7 +643,7 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 + eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.0 espree: 9.5.1 esquery: 1.5.0 @@ -1064,8 +1064,8 @@ packages: queue-microtask: 1.2.3 dev: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver@7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -1123,14 +1123,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils@3.21.0(typescript@5.0.3): + /tsutils@3.21.0(typescript@5.0.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.3 + typescript: 5.0.4 dev: true /type-check@0.4.0: @@ -1145,8 +1145,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript@5.0.3: - resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} hasBin: true dev: true diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs index 3ae6bcd007e..ec2df6334ef 100644 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs +++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); diff --git a/tests/ts/foobar/tab.ts b/tests/ts/foobar/tab.ts new file mode 100644 index 00000000000..a15ada717cb --- /dev/null +++ b/tests/ts/foobar/tab.ts @@ -0,0 +1,132 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +import { Abc } from '../foobar/abc.js'; +import { class_ } from '../foobar/class.js'; + + +export class Tab implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):Tab { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsTab(bb:flatbuffers.ByteBuffer, obj?:Tab):Tab { + return (obj || new Tab()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsTab(bb:flatbuffers.ByteBuffer, obj?:Tab):Tab { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new Tab()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +abc():Abc { + const offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? this.bb!.readInt32(this.bb_pos + offset) : Abc.a; +} + +mutate_abc(value:Abc):boolean { + const offset = this.bb!.__offset(this.bb_pos, 4); + + if (offset === 0) { + return false; + } + + this.bb!.writeInt32(this.bb_pos + offset, value); + return true; +} + +arg():class_ { + const offset = this.bb!.__offset(this.bb_pos, 6); + return offset ? this.bb!.readInt32(this.bb_pos + offset) : class_.arguments_; +} + +mutate_arg(value:class_):boolean { + const offset = this.bb!.__offset(this.bb_pos, 6); + + if (offset === 0) { + return false; + } + + this.bb!.writeInt32(this.bb_pos + offset, value); + return true; +} + +name():string|null +name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null +name(optionalEncoding?:any):string|Uint8Array|null { + const offset = this.bb!.__offset(this.bb_pos, 8); + return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; +} + +static getFullyQualifiedName():string { + return 'foobar.Tab'; +} + +static startTab(builder:flatbuffers.Builder) { + builder.startObject(3); +} + +static addAbc(builder:flatbuffers.Builder, abc:Abc) { + builder.addFieldInt32(0, abc, Abc.a); +} + +static addArg(builder:flatbuffers.Builder, arg:class_) { + builder.addFieldInt32(1, arg, class_.arguments_); +} + +static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { + builder.addFieldOffset(2, nameOffset, 0); +} + +static endTab(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + return offset; +} + +static createTab(builder:flatbuffers.Builder, abc:Abc, arg:class_, nameOffset:flatbuffers.Offset):flatbuffers.Offset { + Tab.startTab(builder); + Tab.addAbc(builder, abc); + Tab.addArg(builder, arg); + Tab.addName(builder, nameOffset); + return Tab.endTab(builder); +} + +unpack(): TabT { + return new TabT( + this.abc(), + this.arg(), + this.name() + ); +} + + +unpackTo(_o: TabT): void { + _o.abc = this.abc(); + _o.arg = this.arg(); + _o.name = this.name(); +} +} + +export class TabT implements flatbuffers.IGeneratedObject { +constructor( + public abc: Abc = Abc.a, + public arg: class_ = class_.arguments_, + public name: string|Uint8Array|null = null +){} + + +pack(builder:flatbuffers.Builder): flatbuffers.Offset { + const name = (this.name !== null ? builder.createString(this.name!) : 0); + + return Tab.createTab(builder, + this.abc, + this.arg, + name + ); +} +} diff --git a/tests/ts/monster_test_generated.cjs b/tests/ts/monster_test_generated.cjs index 3f05fd0abbb..234054b9e73 100644 --- a/tests/ts/monster_test_generated.cjs +++ b/tests/ts/monster_test_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); @@ -928,6 +932,10 @@ var Monster2 = class { const offset = this.bb.__offset(this.bb_pos, 24); return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } + /** + * an example documentation comment: this will end up in the generated code + * multiline too + */ testarrayoftables(index, obj) { const offset = this.bb.__offset(this.bb_pos, 26); return offset ? (obj || new Monster2()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; diff --git a/tests/ts/typescript_keywords_generated.cjs b/tests/ts/typescript_keywords_generated.cjs index a25f9adbc11..5e2e1a870ae 100644 --- a/tests/ts/typescript_keywords_generated.cjs +++ b/tests/ts/typescript_keywords_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); @@ -246,6 +250,9 @@ var Type = class { this.bb.writeUint16(this.bb_pos + offset, value); return true; } + /** + * The size (octets) of the `base_type` field. + */ baseSize() { const offset = this.bb.__offset(this.bb_pos, 12); return offset ? this.bb.readUint32(this.bb_pos + offset) : 4; @@ -258,6 +265,9 @@ var Type = class { this.bb.writeUint32(this.bb_pos + offset, value); return true; } + /** + * The size (octets) of the `element` field, if present. + */ elementSize() { const offset = this.bb.__offset(this.bb_pos, 14); return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; @@ -779,6 +789,9 @@ var Field = class { this.bb.writeInt8(this.bb_pos + offset, +value); return true; } + /** + * Number of padding octets to always add after this field. Structs only. + */ padding() { const offset = this.bb.__offset(this.bb_pos, 28); return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; @@ -1551,6 +1564,10 @@ var Schema = class { this.bb.writeUint64(this.bb_pos + offset, value); return true; } + /** + * All the files used in this compilation. Files are relative to where + * flatc was invoked. + */ fbsFiles(index, obj) { const offset = this.bb.__offset(this.bb_pos, 18); return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; diff --git a/tests/ts/union_vector/union_vector_generated.cjs b/tests/ts/union_vector/union_vector_generated.cjs index ab4b0dcfdac..b63140cd685 100644 --- a/tests/ts/union_vector/union_vector_generated.cjs +++ b/tests/ts/union_vector/union_vector_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); From 76f5e9816a1c3acba81c1c5c8d5e256c6e21edc5 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 9 May 2023 20:33:54 -0700 Subject: [PATCH 02/35] fix out-of-source builds with cmake (#7946) --- .github/workflows/build.yml | 22 ++++++++++++++++++++++ CMakeLists.txt | 7 +++++-- tests/BUILD.bazel | 1 - tests/test.cpp | 7 +------ 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cc2a614fbbd..36e6a3bde19 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,6 +76,28 @@ jobs: - name: build run: make -j + build-linux-out-of-source: + name: Build Linux with out-of-source build location + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: make build directory + run: mkdir build + - name: cmake + working-directory: build + run: > + CXX=clang++-12 cmake .. -G "Unix Makefiles" -DFLATBUFFERS_STRICT_MODE=ON + -DFLATBUFFERS_BUILD_CPP17=ON -DFLATBUFFERS_CPP_STD=17 + - name: build + working-directory: build + run: make -j + - name: test + working-directory: build + run: pwd && ./flattests + - name: test C++17 + working-directory: build + run: ./flattests_cpp17 + build-linux-cpp-std: name: Build Linux C++ runs-on: ubuntu-latest diff --git a/CMakeLists.txt b/CMakeLists.txt index d3115d8821e..3b0254b0fd9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -516,10 +516,12 @@ function(compile_schema_for_samples SRC_FBS OPT) endfunction() if(FLATBUFFERS_BUILD_TESTS) - include_directories(${CMAKE_CURRENT_BINARY_DIR}/tests) add_executable(flattests ${FlatBuffers_Tests_SRCS}) target_link_libraries(flattests PRIVATE $) - target_include_directories(flattests PUBLIC src) + target_include_directories(flattests PUBLIC src tests) + + # Have tests load data from the source directory, not the build directory. + add_definitions(-DFLATBUFFERS_TEST_PATH_PREFIX=${CMAKE_CURRENT_SOURCE_DIR}/) # The flattest target needs some generated files SET(FLATC_OPT --cpp --gen-mutable --gen-object-api --reflect-names) @@ -552,6 +554,7 @@ if(FLATBUFFERS_BUILD_TESTS) if(FLATBUFFERS_BUILD_CPP17) add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS}) target_link_libraries(flattests_cpp17 PRIVATE $) + target_include_directories(flattests_cpp17 PUBLIC src tests) target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) # requires cmake 3.8 if(FLATBUFFERS_CODE_SANITIZE) diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index 923890f602b..c723eb81b7f 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -71,7 +71,6 @@ cc_test( ], copts = [ "-DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE", - "-DBAZEL_TEST_DATA_PATH", ], data = [ ":alignment_test.fbs", diff --git a/tests/test.cpp b/tests/test.cpp index ec60251ad47..49018d1b9c8 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1670,12 +1670,7 @@ int FlatBufferTests(const std::string &tests_data_path) { } // namespace flatbuffers int main(int argc, const char *argv[]) { - std::string tests_data_path = -#ifdef BAZEL_TEST_DATA_PATH - "../com_github_google_flatbuffers/tests/"; -#else - "tests/"; -#endif + std::string tests_data_path = "tests/"; for (int argi = 1; argi < argc; argi++) { std::string arg = argv[argi]; From 16a7df46f0aee4ea6f74f1e3af36a0eefa1caf05 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 9 May 2023 20:37:32 -0700 Subject: [PATCH 03/35] fix --conform raising `No generators registered` error --- src/flatc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flatc.cpp b/src/flatc.cpp index a1501712e59..c0e5dbc7bb9 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -968,7 +968,7 @@ int FlatCompiler::Compile(const FlatCOptions &options) { return 0; } - if (options.generators.empty()) { + if (options.generators.empty() && options.conform_to_schema.empty()) { Error("No generator registered"); return -1; } From 10b79d87c19bd2d0f4fd061d623f3b08cb55a1a9 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 9 May 2023 21:50:28 -0700 Subject: [PATCH 04/35] removed extern code generation declarations preferring direct includes (#7948) * removed extern code generation definitions, preferring direct includes * add static to functions * remove idl_gen_lua --- .github/labeler.yml | 1 - CMakeLists.txt | 1 - include/flatbuffers/code_generator.h | 10 + include/flatbuffers/code_generators.h | 4 + include/flatbuffers/idl.h | 126 ---- src/BUILD.bazel | 2 - src/bfbs_gen_lua.cpp | 7 +- src/code_generators.cpp | 58 +- src/idl_gen_binary.cpp | 39 +- src/idl_gen_cpp.cpp | 4 +- src/idl_gen_csharp.cpp | 4 +- src/idl_gen_dart.cpp | 4 +- src/idl_gen_fbs.cpp | 12 +- src/idl_gen_go.cpp | 2 +- src/idl_gen_java.cpp | 4 +- src/idl_gen_json_schema.cpp | 9 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_lobster.cpp | 2 +- src/idl_gen_lua.cpp | 806 -------------------------- src/idl_gen_lua.h | 29 - src/idl_gen_php.cpp | 2 +- src/idl_gen_python.cpp | 2 +- src/idl_gen_rust.cpp | 6 +- src/idl_gen_swift.cpp | 3 +- src/idl_gen_text.cpp | 45 +- src/idl_gen_ts.cpp | 4 +- tests/proto_test.cpp | 10 +- 27 files changed, 117 insertions(+), 1081 deletions(-) delete mode 100644 src/idl_gen_lua.cpp delete mode 100644 src/idl_gen_lua.h diff --git a/.github/labeler.yml b/.github/labeler.yml index dcab0447e8c..a3667ae56db 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -52,7 +52,6 @@ kotlin: lua: - '**/*.lua' - lua/**/* - - src/idl_gen_lua.cpp - src/bfbs_gen_lua.cpp lobster: diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b0254b0fd9..04ff113e2ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,7 +166,6 @@ set(FlatBuffers_Compiler_SRCS src/idl_gen_php.cpp src/idl_gen_python.cpp src/idl_gen_lobster.cpp - src/idl_gen_lua.cpp src/idl_gen_rust.cpp src/idl_gen_fbs.cpp src/idl_gen_grpc.cpp diff --git a/include/flatbuffers/code_generator.h b/include/flatbuffers/code_generator.h index a88b789cb3e..c9e86bb5027 100644 --- a/include/flatbuffers/code_generator.h +++ b/include/flatbuffers/code_generator.h @@ -44,6 +44,16 @@ class CodeGenerator { virtual Status GenerateCode(const Parser &parser, const std::string &path, const std::string &filename) = 0; + // Generate code from the provided `parser` and place it in the output. + virtual Status GenerateCodeString(const Parser &parser, + const std::string &filename, + std::string &output) { + (void)parser; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. virtual Status GenerateCode(const uint8_t *buffer, int64_t length) = 0; diff --git a/include/flatbuffers/code_generators.h b/include/flatbuffers/code_generators.h index 727552118f5..fc030d43943 100644 --- a/include/flatbuffers/code_generators.h +++ b/include/flatbuffers/code_generators.h @@ -229,6 +229,10 @@ class TypedFloatConstantGenerator : public FloatConstantGenerator { const std::string neg_inf_number_; }; +std::string JavaCSharpMakeRule(const bool java, const Parser &parser, + const std::string &path, + const std::string &file_name); + } // namespace flatbuffers #endif // FLATBUFFERS_CODE_GENERATORS_H_ diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 76a6755cc95..18ee76e981a 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -1217,129 +1217,6 @@ extern const char *GenerateTextFromTable(const Parser &parser, const void *table std::string *text); extern const char *GenerateText(const Parser &parser, const void *flatbuffer, std::string *text); -extern const char *GenerateTextFile(const Parser &parser, - const std::string &path, - const std::string &file_name); - -// Generate Json schema to string -// See idl_gen_json_schema.cpp. -extern bool GenerateJsonSchema(const Parser &parser, std::string *json); - -// Generate binary files from a given FlatBuffer, and a given Parser -// object that has been populated with the corresponding schema. -// See code_generators.cpp. -extern bool GenerateBinary(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate a C++ header from the definitions in the Parser object. -// See idl_gen_cpp. -extern bool GenerateCPP(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate C# files from the definitions in the Parser object. -// See idl_gen_csharp.cpp. -extern bool GenerateCSharp(const Parser &parser, const std::string &path, - const std::string &file_name); - -extern bool GenerateDart(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Java files from the definitions in the Parser object. -// See idl_gen_java.cpp. -extern bool GenerateJava(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate JavaScript or TypeScript code from the definitions in the Parser -// object. See idl_gen_js. -extern bool GenerateTS(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Go files from the definitions in the Parser object. -// See idl_gen_go.cpp. -extern bool GenerateGo(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Php code from the definitions in the Parser object. -// See idl_gen_php. -extern bool GeneratePhp(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Python files from the definitions in the Parser object. -// See idl_gen_python.cpp. -extern bool GeneratePython(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Lobster files from the definitions in the Parser object. -// See idl_gen_lobster.cpp. -extern bool GenerateLobster(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Lua files from the definitions in the Parser object. -// See idl_gen_lua.cpp. -extern bool GenerateLua(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Rust files from the definitions in the Parser object. -// See idl_gen_rust.cpp. -extern bool GenerateRust(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Json schema file -// See idl_gen_json_schema.cpp. -extern bool GenerateJsonSchema(const Parser &parser, const std::string &path, - const std::string &file_name); - -extern bool GenerateKotlin(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate Swift classes. -// See idl_gen_swift.cpp -extern bool GenerateSwift(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate a schema file from the internal representation, useful after -// parsing a .proto schema. -extern std::string GenerateFBS(const Parser &parser, - const std::string &file_name, bool no_log); -extern bool GenerateFBS(const Parser &parser, const std::string &path, - const std::string &file_name, bool no_log); - -// Generate a make rule for the generated TypeScript code. -// See idl_gen_ts.cpp. -extern std::string TSMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate a make rule for the generated C++ header. -// See idl_gen_cpp.cpp. -extern std::string CPPMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate a make rule for the generated Dart code -// see idl_gen_dart.cpp -extern std::string DartMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate a make rule for the generated Rust code. -// See idl_gen_rust.cpp. -extern std::string RustMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate a make rule for generated Java or C# files. -// See code_generators.cpp. -extern std::string CSharpMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name); -extern std::string JavaMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name); - -// Generate a make rule for the generated text (JSON) files. -// See idl_gen_text.cpp. -extern std::string TextMakeRule(const Parser &parser, const std::string &path, - const std::string &file_names); - -// Generate a make rule for the generated binary files. -// See code_generators.cpp. -extern std::string BinaryMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name); // Generate GRPC Cpp interfaces. // See idl_gen_grpc.cpp. @@ -1368,9 +1245,6 @@ extern bool GenerateSwiftGRPC(const Parser &parser, const std::string &path, extern bool GenerateTSGRPC(const Parser &parser, const std::string &path, const std::string &file_name); - -extern bool GenerateRustModuleRootFile(const Parser &parser, - const std::string &path); } // namespace flatbuffers #endif // FLATBUFFERS_IDL_H_ diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 9971892e975..1084e76b09c 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -125,8 +125,6 @@ cc_library( "idl_gen_kotlin.h", "idl_gen_lobster.cpp", "idl_gen_lobster.h", - "idl_gen_lua.cpp", - "idl_gen_lua.h", "idl_gen_php.cpp", "idl_gen_php.h", "idl_gen_python.cpp", diff --git a/src/bfbs_gen_lua.cpp b/src/bfbs_gen_lua.cpp index 8823d912b17..efe32005881 100644 --- a/src/bfbs_gen_lua.cpp +++ b/src/bfbs_gen_lua.cpp @@ -88,10 +88,9 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { using BaseBfbsGenerator::GenerateCode; - Status GenerateCode(const Parser &parser, const std::string &path, - const std::string &filename) FLATBUFFERS_OVERRIDE { - if (!GenerateLua(parser, path, filename)) { return ERROR; } - return OK; + Status GenerateCode(const Parser &, const std::string &, + const std::string &) FLATBUFFERS_OVERRIDE { + return Status::NOT_IMPLEMENTED; } Status GenerateMakeRule(const Parser &parser, const std::string &path, diff --git a/src/code_generators.cpp b/src/code_generators.cpp index c5efb222b1c..6a542103ab3 100644 --- a/src/code_generators.cpp +++ b/src/code_generators.cpp @@ -30,9 +30,7 @@ namespace flatbuffers { -namespace { - -static std::string JavaCSharpMakeRule(const bool java, const Parser &parser, +std::string JavaCSharpMakeRule(const bool java, const Parser &parser, const std::string &path, const std::string &file_name) { const std::string file_extension = java ? ".java" : ".cs"; @@ -64,18 +62,6 @@ static std::string JavaCSharpMakeRule(const bool java, const Parser &parser, return make_rule; } - -static std::string BinaryFileName(const Parser &parser, const std::string &path, - const std::string &file_name) { - auto ext = parser.file_extension_.length() ? parser.file_extension_ : "bin"; - return path + file_name + "." + ext; -} - -} // namespace - - - - void CodeWriter::operator+=(std::string text) { if (!ignore_ident_ && !text.empty()) AppendIdent(stream_); @@ -346,48 +332,6 @@ std::string SimpleFloatConstantGenerator::NaN(float v) const { return this->NaN(static_cast(v)); } - -std::string JavaMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { - return JavaCSharpMakeRule(true, parser, path, file_name); -} -std::string CSharpMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { - return JavaCSharpMakeRule(false, parser, path, file_name); -} - -bool GenerateBinary(const Parser &parser, const std::string &path, - const std::string &file_name) { - if (parser.opts.use_flexbuffers) { - auto data_vec = parser.flex_builder_.GetBuffer(); - auto data_ptr = reinterpret_cast(data(data_vec)); - return !parser.flex_builder_.GetSize() || - flatbuffers::SaveFile( - BinaryFileName(parser, path, file_name).c_str(), data_ptr, - parser.flex_builder_.GetSize(), true); - } - return !parser.builder_.GetSize() || - flatbuffers::SaveFile( - BinaryFileName(parser, path, file_name).c_str(), - reinterpret_cast(parser.builder_.GetBufferPointer()), - parser.builder_.GetSize(), true); -} - -std::string BinaryMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { - if (!parser.builder_.GetSize()) return ""; - std::string filebase = - flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); - std::string make_rule = - BinaryFileName(parser, path, filebase) + ": " + file_name; - auto included_files = - parser.GetIncludedFilesRecursive(parser.root_struct_def_->file); - for (auto it = included_files.begin(); it != included_files.end(); ++it) { - make_rule += " " + *it; - } - return make_rule; -} - } // namespace flatbuffers #if defined(_MSC_VER) diff --git a/src/idl_gen_binary.cpp b/src/idl_gen_binary.cpp index feb4e2f55e7..90922cbd995 100644 --- a/src/idl_gen_binary.cpp +++ b/src/idl_gen_binary.cpp @@ -31,9 +31,46 @@ #include "flatbuffers/util.h" namespace flatbuffers { - namespace { +static std::string BinaryFileName(const Parser &parser, const std::string &path, + const std::string &file_name) { + auto ext = parser.file_extension_.length() ? parser.file_extension_ : "bin"; + return path + file_name + "." + ext; +} + +static bool GenerateBinary(const Parser &parser, const std::string &path, + const std::string &file_name) { + if (parser.opts.use_flexbuffers) { + auto data_vec = parser.flex_builder_.GetBuffer(); + auto data_ptr = reinterpret_cast(data(data_vec)); + return !parser.flex_builder_.GetSize() || + flatbuffers::SaveFile( + BinaryFileName(parser, path, file_name).c_str(), data_ptr, + parser.flex_builder_.GetSize(), true); + } + return !parser.builder_.GetSize() || + flatbuffers::SaveFile( + BinaryFileName(parser, path, file_name).c_str(), + reinterpret_cast(parser.builder_.GetBufferPointer()), + parser.builder_.GetSize(), true); +} + +static std::string BinaryMakeRule(const Parser &parser, const std::string &path, + const std::string &file_name) { + if (!parser.builder_.GetSize()) return ""; + std::string filebase = + flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); + std::string make_rule = + BinaryFileName(parser, path, filebase) + ": " + file_name; + auto included_files = + parser.GetIncludedFilesRecursive(parser.root_struct_def_->file); + for (auto it = included_files.begin(); it != included_files.end(); ++it) { + make_rule += " " + *it; + } + return make_rule; +} + class BinaryCodeGenerator : public CodeGenerator { public: Status GenerateCode(const Parser &parser, const std::string &path, diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index b5199062a5b..c090fbff65e 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -4066,7 +4066,7 @@ class CppGenerator : public BaseGenerator { } // namespace cpp -bool GenerateCPP(const Parser &parser, const std::string &path, +static bool GenerateCPP(const Parser &parser, const std::string &path, const std::string &file_name) { cpp::IDLOptionsCpp opts(parser.opts); // The '--cpp_std' argument could be extended (like ASAN): @@ -4105,7 +4105,7 @@ bool GenerateCPP(const Parser &parser, const std::string &path, return generator.generate(); } -std::string CPPMakeRule(const Parser &parser, const std::string &path, +static std::string CPPMakeRule(const Parser &parser, const std::string &path, const std::string &file_name) { const auto filebase = StripPath(StripExtension(file_name)); cpp::CppGenerator geneartor(parser, path, file_name, parser.opts); diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 0dbcd4b927f..fd033b82495 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -2498,7 +2498,7 @@ class CSharpGenerator : public BaseGenerator { }; } // namespace csharp -bool GenerateCSharp(const Parser &parser, const std::string &path, +static bool GenerateCSharp(const Parser &parser, const std::string &path, const std::string &file_name) { csharp::CSharpGenerator generator(parser, path, file_name); return generator.generate(); @@ -2523,7 +2523,7 @@ class CSharpCodeGenerator : public CodeGenerator { Status GenerateMakeRule(const Parser &parser, const std::string &path, const std::string &filename, std::string &output) override { - output = CSharpMakeRule(parser, path, filename); + output = JavaCSharpMakeRule(false, parser, path, filename); return Status::OK; } diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index 299409bac2d..2b4d862c647 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -1124,13 +1124,13 @@ class DartGenerator : public BaseGenerator { }; } // namespace dart -bool GenerateDart(const Parser &parser, const std::string &path, +static bool GenerateDart(const Parser &parser, const std::string &path, const std::string &file_name) { dart::DartGenerator generator(parser, path, file_name); return generator.generate(); } -std::string DartMakeRule(const Parser &parser, const std::string &path, +static std::string DartMakeRule(const Parser &parser, const std::string &path, const std::string &file_name) { auto filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); diff --git a/src/idl_gen_fbs.cpp b/src/idl_gen_fbs.cpp index f71c21f97d9..4658fe9d42f 100644 --- a/src/idl_gen_fbs.cpp +++ b/src/idl_gen_fbs.cpp @@ -28,6 +28,7 @@ #include "flatbuffers/util.h" namespace flatbuffers { +namespace { static std::string GenType(const Type &type, bool underlying = false) { switch (type.base_type) { @@ -252,7 +253,7 @@ static void GenNameSpace(const Namespace &name_space, std::string *_schema, } // Generate a flatbuffer schema from the Parser's internal representation. -std::string GenerateFBS(const Parser &parser, const std::string &file_name, +static std::string GenerateFBS(const Parser &parser, const std::string &file_name, bool no_log = false) { // Proto namespaces may clash with table names, escape the ones that were // generated from a table: @@ -374,7 +375,7 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name, return schema; } -bool GenerateFBS(const Parser &parser, const std::string &path, +static bool GenerateFBS(const Parser &parser, const std::string &path, const std::string &file_name, bool no_log = false) { const std::string fbs = GenerateFBS(parser, file_name, no_log); if (fbs.empty()) { return false; } @@ -387,7 +388,6 @@ bool GenerateFBS(const Parser &parser, const std::string &path, return SaveFile((path + file_name + ".fbs").c_str(), fbs, false); } -namespace { class FBSCodeGenerator : public CodeGenerator { public: @@ -399,6 +399,12 @@ class FBSCodeGenerator : public CodeGenerator { return Status::OK; } + Status GenerateCodeString(const Parser &parser, const std::string &filename, + std::string &output) override { + output = GenerateFBS(parser, filename, no_log_); + return Status::OK; + } + // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. Status GenerateCode(const uint8_t *buffer, int64_t length) override { diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 0f2882b7584..dcfac099a21 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -1606,7 +1606,7 @@ class GoGenerator : public BaseGenerator { }; } // namespace go -bool GenerateGo(const Parser &parser, const std::string &path, +static bool GenerateGo(const Parser &parser, const std::string &path, const std::string &file_name) { go::GoGenerator generator(parser, path, file_name, parser.opts.go_namespace); return generator.generate(); diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 34895ee9dcd..b7c9d564331 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -2196,7 +2196,7 @@ class JavaGenerator : public BaseGenerator { }; } // namespace java -bool GenerateJava(const Parser &parser, const std::string &path, +static bool GenerateJava(const Parser &parser, const std::string &path, const std::string &file_name) { java::JavaGenerator generator(parser, path, file_name, parser.opts.java_package_prefix); @@ -2222,7 +2222,7 @@ class JavaCodeGenerator : public CodeGenerator { Status GenerateMakeRule(const Parser &parser, const std::string &path, const std::string &filename, std::string &output) override { - output = JavaMakeRule(parser, path, filename); + output = JavaCSharpMakeRule(true, parser, path, filename); return Status::OK; } diff --git a/src/idl_gen_json_schema.cpp b/src/idl_gen_json_schema.cpp index 3849da856a2..2bf99faebf9 100644 --- a/src/idl_gen_json_schema.cpp +++ b/src/idl_gen_json_schema.cpp @@ -319,20 +319,13 @@ class JsonSchemaGenerator : public BaseGenerator { }; } // namespace jsons -bool GenerateJsonSchema(const Parser &parser, const std::string &path, +static bool GenerateJsonSchema(const Parser &parser, const std::string &path, const std::string &file_name) { jsons::JsonSchemaGenerator generator(parser, path, file_name); if (!generator.generate()) { return false; } return generator.save(); } -bool GenerateJsonSchema(const Parser &parser, std::string *json) { - jsons::JsonSchemaGenerator generator(parser, "", ""); - if (!generator.generate()) { return false; } - *json = generator.getJson(); - return true; -} - namespace { class JsonSchemaCodeGenerator : public CodeGenerator { diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index eeaca94854c..f90f0beb98b 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -1593,7 +1593,7 @@ class KotlinGenerator : public BaseGenerator { }; } // namespace kotlin -bool GenerateKotlin(const Parser &parser, const std::string &path, +static bool GenerateKotlin(const Parser &parser, const std::string &path, const std::string &file_name) { kotlin::KotlinGenerator generator(parser, path, file_name); return generator.generate(); diff --git a/src/idl_gen_lobster.cpp b/src/idl_gen_lobster.cpp index a8b0a6f7a5e..38ac33abc03 100644 --- a/src/idl_gen_lobster.cpp +++ b/src/idl_gen_lobster.cpp @@ -398,7 +398,7 @@ class LobsterGenerator : public BaseGenerator { } // namespace lobster -bool GenerateLobster(const Parser &parser, const std::string &path, +static bool GenerateLobster(const Parser &parser, const std::string &path, const std::string &file_name) { lobster::LobsterGenerator generator(parser, path, file_name); return generator.generate(); diff --git a/src/idl_gen_lua.cpp b/src/idl_gen_lua.cpp deleted file mode 100644 index 551a4b26f8a..00000000000 --- a/src/idl_gen_lua.cpp +++ /dev/null @@ -1,806 +0,0 @@ -/* - * Copyright 2014 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// independent from idl_parser, since this code is not needed for most clients - -#include "idl_gen_lua.h" - -#include -#include - -#include "flatbuffers/code_generators.h" -#include "flatbuffers/flatbuffers.h" -#include "flatbuffers/idl.h" -#include "flatbuffers/util.h" - -namespace flatbuffers { -namespace lua { - -// Hardcode spaces per indentation. -const CommentConfig def_comment = { nullptr, "--", nullptr }; -const char *Indent = " "; -const char *Comment = "-- "; -const char *End = "end\n"; -const char *EndFunc = "end\n"; -const char *SelfData = "self.view"; -const char *SelfDataPos = "self.view.pos"; -const char *SelfDataBytes = "self.view.bytes"; - -class LuaGenerator : public BaseGenerator { - public: - LuaGenerator(const Parser &parser, const std::string &path, - const std::string &file_name) - : BaseGenerator(parser, path, file_name, "" /* not used */, - "" /* not used */, "lua") { - static const char *const keywords[] = { - "and", "break", "do", "else", "elseif", "end", "false", "for", - "function", "goto", "if", "in", "local", "nil", "not", "or", - "repeat", "return", "then", "true", "until", "while" - }; - keywords_.insert(std::begin(keywords), std::end(keywords)); - } - - // Most field accessors need to retrieve and test the field offset first, - // this is the prefix code for that. - std::string OffsetPrefix(const FieldDef &field) { - return std::string(Indent) + "local o = " + SelfData + ":Offset(" + - NumToString(field.value.offset) + ")\n" + Indent + - "if o ~= 0 then\n"; - } - - // Begin a class declaration. - void BeginClass(const StructDef &struct_def, std::string *code_ptr) { - std::string &code = *code_ptr; - code += "local " + NormalizedName(struct_def) + " = {} -- the module\n"; - code += "local " + NormalizedMetaName(struct_def) + - " = {} -- the class metatable\n"; - code += "\n"; - } - - // Begin enum code with a class declaration. - void BeginEnum(const std::string &class_name, std::string *code_ptr) { - std::string &code = *code_ptr; - code += "local " + class_name + " = {\n"; - } - - std::string EscapeKeyword(const std::string &name) const { - return keywords_.find(name) == keywords_.end() ? name : "_" + name; - } - - std::string NormalizedName(const Definition &definition) const { - return EscapeKeyword(definition.name); - } - - std::string NormalizedName(const EnumVal &ev) const { - return EscapeKeyword(ev.name); - } - - std::string NormalizedMetaName(const Definition &definition) const { - return EscapeKeyword(definition.name) + "_mt"; - } - - // A single enum member. - void EnumMember(const EnumDef &enum_def, const EnumVal &ev, - std::string *code_ptr) { - std::string &code = *code_ptr; - code += std::string(Indent) + NormalizedName(ev) + " = " + - enum_def.ToString(ev) + ",\n"; - } - - // End enum code. - void EndEnum(std::string *code_ptr) { - std::string &code = *code_ptr; - code += "}\n"; - } - - void GenerateNewObjectPrototype(const StructDef &struct_def, - std::string *code_ptr) { - std::string &code = *code_ptr; - - code += "function " + NormalizedName(struct_def) + ".New()\n"; - code += std::string(Indent) + "local o = {}\n"; - code += std::string(Indent) + - "setmetatable(o, {__index = " + NormalizedMetaName(struct_def) + - "})\n"; - code += std::string(Indent) + "return o\n"; - code += EndFunc; - } - - // Initialize a new struct or table from existing data. - void NewRootTypeFromBuffer(const StructDef &struct_def, - std::string *code_ptr) { - std::string &code = *code_ptr; - - code += "function " + NormalizedName(struct_def) + ".GetRootAs" + - NormalizedName(struct_def) + "(buf, offset)\n"; - code += std::string(Indent) + "if type(buf) == \"string\" then\n"; - code += std::string(Indent) + Indent + - "buf = flatbuffers.binaryArray.New(buf)\n"; - code += std::string(Indent) + "end\n"; - code += std::string(Indent) + - "local n = flatbuffers.N.UOffsetT:Unpack(buf, offset)\n"; - code += std::string(Indent) + "local o = " + NormalizedName(struct_def) + - ".New()\n"; - code += std::string(Indent) + "o:Init(buf, n + offset)\n"; - code += std::string(Indent) + "return o\n"; - code += EndFunc; - } - - // Initialize an existing object with other data, to avoid an allocation. - void InitializeExisting(const StructDef &struct_def, std::string *code_ptr) { - std::string &code = *code_ptr; - - GenReceiver(struct_def, code_ptr); - code += "Init(buf, pos)\n"; - code += - std::string(Indent) + SelfData + " = flatbuffers.view.New(buf, pos)\n"; - code += EndFunc; - } - - // Get the length of a vector. - void GetVectorLen(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) { - std::string &code = *code_ptr; - - GenReceiver(struct_def, code_ptr); - code += - ConvertCase(NormalizedName(field), Case::kUpperCamel) + "Length()\n"; - code += OffsetPrefix(field); - code += - std::string(Indent) + Indent + "return " + SelfData + ":VectorLen(o)\n"; - code += std::string(Indent) + End; - code += std::string(Indent) + "return 0\n"; - code += EndFunc; - } - - // Get the value of a struct's scalar. - void GetScalarFieldOfStruct(const StructDef &struct_def, - const FieldDef &field, std::string *code_ptr) { - std::string &code = *code_ptr; - std::string getter = GenGetter(field.value.type); - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "()\n"; - code += std::string(Indent) + "return " + getter; - code += std::string(SelfDataPos) + " + " + NumToString(field.value.offset) + - ")\n"; - code += EndFunc; - } - - // Get the value of a table's scalar. - void GetScalarFieldOfTable(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) { - std::string &code = *code_ptr; - std::string getter = GenGetter(field.value.type); - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "()\n"; - code += OffsetPrefix(field); - getter += std::string("o + ") + SelfDataPos + ")"; - auto is_bool = field.value.type.base_type == BASE_TYPE_BOOL; - if (is_bool) { getter = "(" + getter + " ~= 0)"; } - code += std::string(Indent) + Indent + "return " + getter + "\n"; - code += std::string(Indent) + End; - std::string default_value; - if (is_bool) { - default_value = field.value.constant == "0" ? "false" : "true"; - } else { - default_value = field.value.constant; - } - code += std::string(Indent) + "return " + default_value + "\n"; - code += EndFunc; - } - - // Get a struct by initializing an existing struct. - // Specific to Struct. - void GetStructFieldOfStruct(const StructDef &struct_def, - const FieldDef &field, std::string *code_ptr) { - std::string &code = *code_ptr; - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "(obj)\n"; - code += std::string(Indent) + "obj:Init(" + SelfDataBytes + ", " + - SelfDataPos + " + "; - code += NumToString(field.value.offset) + ")\n"; - code += std::string(Indent) + "return obj\n"; - code += EndFunc; - } - - // Get a struct by initializing an existing struct. - // Specific to Table. - void GetStructFieldOfTable(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) { - std::string &code = *code_ptr; - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "()\n"; - code += OffsetPrefix(field); - if (field.value.type.struct_def->fixed) { - code += - std::string(Indent) + Indent + "local x = o + " + SelfDataPos + "\n"; - } else { - code += std::string(Indent) + Indent + "local x = " + SelfData + - ":Indirect(o + " + SelfDataPos + ")\n"; - } - code += std::string(Indent) + Indent + "local obj = require('" + - TypeNameWithNamespace(field) + "').New()\n"; - code += - std::string(Indent) + Indent + "obj:Init(" + SelfDataBytes + ", x)\n"; - code += std::string(Indent) + Indent + "return obj\n"; - code += std::string(Indent) + End; - code += EndFunc; - } - - // Get the value of a string. - void GetStringField(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) { - std::string &code = *code_ptr; - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "()\n"; - code += OffsetPrefix(field); - code += - std::string(Indent) + Indent + "return " + GenGetter(field.value.type); - code += std::string("o + ") + SelfDataPos + ")\n"; - code += std::string(Indent) + End; - code += EndFunc; - } - - // Get the value of a union from an object. - void GetUnionField(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) { - std::string &code = *code_ptr; - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel) + "()\n"; - code += OffsetPrefix(field); - - // TODO(rw): this works and is not the good way to it: - // bool is_native_table = TypeName(field) == "*flatbuffers.Table"; - // if (is_native_table) { - // code += std::string(Indent) + Indent + "from flatbuffers.table import - // Table\n"; - //} else { - // code += std::string(Indent) + Indent + - // code += "from ." + TypeName(field) + " import " + TypeName(field) + - // "\n"; - //} - code += - std::string(Indent) + Indent + - "local obj = " - "flatbuffers.view.New(require('flatbuffers.binaryarray').New(0), 0)\n"; - code += std::string(Indent) + Indent + GenGetter(field.value.type) + - "obj, o)\n"; - code += std::string(Indent) + Indent + "return obj\n"; - code += std::string(Indent) + End; - code += EndFunc; - } - - // Get the value of a vector's struct member. - void GetMemberOfVectorOfStruct(const StructDef &struct_def, - const FieldDef &field, std::string *code_ptr) { - std::string &code = *code_ptr; - auto vectortype = field.value.type.VectorType(); - - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "(j)\n"; - code += OffsetPrefix(field); - code += - std::string(Indent) + Indent + "local x = " + SelfData + ":Vector(o)\n"; - code += std::string(Indent) + Indent + "x = x + ((j-1) * "; - code += NumToString(InlineSize(vectortype)) + ")\n"; - if (!(vectortype.struct_def->fixed)) { - code += - std::string(Indent) + Indent + "x = " + SelfData + ":Indirect(x)\n"; - } - code += std::string(Indent) + Indent + "local obj = require('" + - TypeNameWithNamespace(field) + "').New()\n"; - code += - std::string(Indent) + Indent + "obj:Init(" + SelfDataBytes + ", x)\n"; - code += std::string(Indent) + Indent + "return obj\n"; - code += std::string(Indent) + End; - code += EndFunc; - } - - // Get the value of a vector's non-struct member. Uses a named return - // argument to conveniently set the zero value for the result. - void GetMemberOfVectorOfNonStruct(const StructDef &struct_def, - const FieldDef &field, - std::string *code_ptr) { - std::string &code = *code_ptr; - auto vectortype = field.value.type.VectorType(); - - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "(j)\n"; - code += OffsetPrefix(field); - code += - std::string(Indent) + Indent + "local a = " + SelfData + ":Vector(o)\n"; - code += std::string(Indent) + Indent; - code += "return " + GenGetter(field.value.type); - code += "a + ((j-1) * "; - code += NumToString(InlineSize(vectortype)) + "))\n"; - code += std::string(Indent) + End; - if (IsString(vectortype)) { - code += std::string(Indent) + "return ''\n"; - } else { - code += std::string(Indent) + "return 0\n"; - } - code += EndFunc; - } - - // Access a byte/ubyte vector as a string - void AccessByteVectorAsString(const StructDef &struct_def, - const FieldDef &field, std::string *code_ptr) { - std::string &code = *code_ptr; - GenReceiver(struct_def, code_ptr); - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "AsString(start, stop)\n"; - code += std::string(Indent) + "return " + SelfData + ":VectorAsString(" + - NumToString(field.value.offset) + ", start, stop)\n"; - code += EndFunc; - } - - // Begin the creator function signature. - void BeginBuilderArgs(const StructDef &struct_def, std::string *code_ptr) { - std::string &code = *code_ptr; - - code += "function " + NormalizedName(struct_def) + ".Create" + - NormalizedName(struct_def); - code += "(builder"; - } - - // Recursively generate arguments for a constructor, to deal with nested - // structs. - void StructBuilderArgs(const StructDef &struct_def, const char *nameprefix, - std::string *code_ptr) { - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - auto &field = **it; - if (IsStruct(field.value.type)) { - // Generate arguments for a struct inside a struct. To ensure names - // don't clash, and to make it obvious these arguments are constructing - // a nested struct, prefix the name with the field name. - StructBuilderArgs(*field.value.type.struct_def, - (nameprefix + (NormalizedName(field) + "_")).c_str(), - code_ptr); - } else { - std::string &code = *code_ptr; - code += std::string(", ") + nameprefix; - code += ConvertCase(NormalizedName(field), Case::kLowerCamel); - } - } - } - - // End the creator function signature. - void EndBuilderArgs(std::string *code_ptr) { - std::string &code = *code_ptr; - code += ")\n"; - } - - // Recursively generate struct construction statements and instert manual - // padding. - void StructBuilderBody(const StructDef &struct_def, const char *nameprefix, - std::string *code_ptr) { - std::string &code = *code_ptr; - code += std::string(Indent) + "builder:Prep(" + - NumToString(struct_def.minalign) + ", "; - code += NumToString(struct_def.bytesize) + ")\n"; - for (auto it = struct_def.fields.vec.rbegin(); - it != struct_def.fields.vec.rend(); ++it) { - auto &field = **it; - if (field.padding) - code += std::string(Indent) + "builder:Pad(" + - NumToString(field.padding) + ")\n"; - if (IsStruct(field.value.type)) { - StructBuilderBody(*field.value.type.struct_def, - (nameprefix + (NormalizedName(field) + "_")).c_str(), - code_ptr); - } else { - code += - std::string(Indent) + "builder:Prepend" + GenMethod(field) + "("; - code += nameprefix + - ConvertCase(NormalizedName(field), Case::kLowerCamel) + ")\n"; - } - } - } - - void EndBuilderBody(std::string *code_ptr) { - std::string &code = *code_ptr; - code += std::string(Indent) + "return builder:Offset()\n"; - code += EndFunc; - } - - // Get the value of a table's starting offset. - void GetStartOfTable(const StructDef &struct_def, std::string *code_ptr) { - std::string &code = *code_ptr; - code += "function " + NormalizedName(struct_def) + ".Start"; - code += "(builder) "; - code += "builder:StartObject("; - code += NumToString(struct_def.fields.vec.size()); - code += ") end\n"; - } - - // Set the value of a table's field. - void BuildFieldOfTable(const StructDef &struct_def, const FieldDef &field, - const size_t offset, std::string *code_ptr) { - std::string &code = *code_ptr; - code += "function " + NormalizedName(struct_def) + ".Add" + - ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "(builder, "; - code += ConvertCase(NormalizedName(field), Case::kLowerCamel); - code += ") "; - code += "builder:Prepend"; - code += GenMethod(field) + "Slot("; - code += NumToString(offset) + ", "; - // todo: i don't need to cast in Lua, but am I missing something? - // if (!IsScalar(field.value.type.base_type) && (!struct_def.fixed)) { - // code += "flatbuffers.N.UOffsetTFlags.py_type"; - // code += "("; - // code += ConvertCase(NormalizedName(field), Case::kLowerCamel) + ")"; - // } else { - code += ConvertCase(NormalizedName(field), Case::kLowerCamel); - // } - code += ", " + field.value.constant; - code += ") end\n"; - } - - // Set the value of one of the members of a table's vector. - void BuildVectorOfTable(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) { - std::string &code = *code_ptr; - code += "function " + NormalizedName(struct_def) + ".Start"; - code += ConvertCase(NormalizedName(field), Case::kUpperCamel); - code += "Vector(builder, numElems) return builder:StartVector("; - auto vector_type = field.value.type.VectorType(); - auto alignment = InlineAlignment(vector_type); - auto elem_size = InlineSize(vector_type); - code += NumToString(elem_size); - code += ", numElems, " + NumToString(alignment); - code += ") end\n"; - } - - // Get the offset of the end of a table. - void GetEndOffsetOnTable(const StructDef &struct_def, std::string *code_ptr) { - std::string &code = *code_ptr; - code += "function " + NormalizedName(struct_def) + ".End"; - code += "(builder) "; - code += "return builder:EndObject() end\n"; - } - - // Generate the receiver for function signatures. - void GenReceiver(const StructDef &struct_def, std::string *code_ptr) { - std::string &code = *code_ptr; - code += "function " + NormalizedMetaName(struct_def) + ":"; - } - - // Generate a struct field, conditioned on its child type(s). - void GenStructAccessor(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) { - GenComment(field.doc_comment, code_ptr, &def_comment); - if (IsScalar(field.value.type.base_type)) { - if (struct_def.fixed) { - GetScalarFieldOfStruct(struct_def, field, code_ptr); - } else { - GetScalarFieldOfTable(struct_def, field, code_ptr); - } - } else { - switch (field.value.type.base_type) { - case BASE_TYPE_STRUCT: - if (struct_def.fixed) { - GetStructFieldOfStruct(struct_def, field, code_ptr); - } else { - GetStructFieldOfTable(struct_def, field, code_ptr); - } - break; - case BASE_TYPE_STRING: - GetStringField(struct_def, field, code_ptr); - break; - case BASE_TYPE_VECTOR: { - auto vectortype = field.value.type.VectorType(); - if (vectortype.base_type == BASE_TYPE_STRUCT) { - GetMemberOfVectorOfStruct(struct_def, field, code_ptr); - } else { - GetMemberOfVectorOfNonStruct(struct_def, field, code_ptr); - if (vectortype.base_type == BASE_TYPE_CHAR || - vectortype.base_type == BASE_TYPE_UCHAR) { - AccessByteVectorAsString(struct_def, field, code_ptr); - } - } - break; - } - case BASE_TYPE_UNION: GetUnionField(struct_def, field, code_ptr); break; - default: FLATBUFFERS_ASSERT(0); - } - } - if (IsVector(field.value.type)) { - GetVectorLen(struct_def, field, code_ptr); - } - } - - // Generate table constructors, conditioned on its members' types. - void GenTableBuilders(const StructDef &struct_def, std::string *code_ptr) { - GetStartOfTable(struct_def, code_ptr); - - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - auto &field = **it; - if (field.deprecated) continue; - - auto offset = it - struct_def.fields.vec.begin(); - BuildFieldOfTable(struct_def, field, offset, code_ptr); - if (IsVector(field.value.type)) { - BuildVectorOfTable(struct_def, field, code_ptr); - } - } - - GetEndOffsetOnTable(struct_def, code_ptr); - } - - // Generate struct or table methods. - void GenStruct(const StructDef &struct_def, std::string *code_ptr) { - if (struct_def.generated) return; - - GenComment(struct_def.doc_comment, code_ptr, &def_comment); - BeginClass(struct_def, code_ptr); - - GenerateNewObjectPrototype(struct_def, code_ptr); - - if (!struct_def.fixed) { - // Generate a special accessor for the table that has been declared as - // the root type. - NewRootTypeFromBuffer(struct_def, code_ptr); - } - - // Generate the Init method that sets the field in a pre-existing - // accessor object. This is to allow object reuse. - InitializeExisting(struct_def, code_ptr); - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - auto &field = **it; - if (field.deprecated) continue; - - GenStructAccessor(struct_def, field, code_ptr); - } - - if (struct_def.fixed) { - // create a struct constructor function - GenStructBuilder(struct_def, code_ptr); - } else { - // Create a set of functions that allow table construction. - GenTableBuilders(struct_def, code_ptr); - } - } - - // Generate enum declarations. - void GenEnum(const EnumDef &enum_def, std::string *code_ptr) { - if (enum_def.generated) return; - - GenComment(enum_def.doc_comment, code_ptr, &def_comment); - BeginEnum(NormalizedName(enum_def), code_ptr); - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { - auto &ev = **it; - GenComment(ev.doc_comment, code_ptr, &def_comment, Indent); - EnumMember(enum_def, ev, code_ptr); - } - EndEnum(code_ptr); - } - - // Returns the function name that is able to read a value of the given type. - std::string GenGetter(const Type &type) { - switch (type.base_type) { - case BASE_TYPE_STRING: return std::string(SelfData) + ":String("; - case BASE_TYPE_UNION: return std::string(SelfData) + ":Union("; - case BASE_TYPE_VECTOR: return GenGetter(type.VectorType()); - default: - return std::string(SelfData) + ":Get(flatbuffers.N." + - ConvertCase(GenTypeGet(type), Case::kUpperCamel) + ", "; - } - } - - // Returns the method name for use with add/put calls. - std::string GenMethod(const FieldDef &field) { - return IsScalar(field.value.type.base_type) - ? ConvertCase(GenTypeBasic(field.value.type), Case::kUpperCamel) - : (IsStruct(field.value.type) ? "Struct" : "UOffsetTRelative"); - } - - std::string GenTypeBasic(const Type &type) { - // clang-format off - static const char *ctypename[] = { - #define FLATBUFFERS_TD(ENUM, IDLTYPE, \ - CTYPE, JTYPE, GTYPE, NTYPE, PTYPE, ...) \ - #PTYPE, - FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) - #undef FLATBUFFERS_TD - }; - // clang-format on - return ctypename[type.base_type]; - } - - std::string GenTypePointer(const Type &type) { - switch (type.base_type) { - case BASE_TYPE_STRING: return "string"; - case BASE_TYPE_VECTOR: return GenTypeGet(type.VectorType()); - case BASE_TYPE_STRUCT: return type.struct_def->name; - case BASE_TYPE_UNION: - // fall through - default: return "*flatbuffers.Table"; - } - } - - std::string GenTypeGet(const Type &type) { - return IsScalar(type.base_type) ? GenTypeBasic(type) : GenTypePointer(type); - } - - std::string GetNamespace(const Type &type) { - return type.struct_def->defined_namespace->GetFullyQualifiedName( - type.struct_def->name); - } - - std::string TypeName(const FieldDef &field) { - return GenTypeGet(field.value.type); - } - - std::string TypeNameWithNamespace(const FieldDef &field) { - return GetNamespace(field.value.type); - } - - // Create a struct with a builder and the struct's arguments. - void GenStructBuilder(const StructDef &struct_def, std::string *code_ptr) { - BeginBuilderArgs(struct_def, code_ptr); - StructBuilderArgs(struct_def, "", code_ptr); - EndBuilderArgs(code_ptr); - - StructBuilderBody(struct_def, "", code_ptr); - EndBuilderBody(code_ptr); - } - - bool generate() { - if (!generateEnums()) return false; - if (!generateStructs()) return false; - return true; - } - - private: - bool generateEnums() { - for (auto it = parser_.enums_.vec.begin(); it != parser_.enums_.vec.end(); - ++it) { - auto &enum_def = **it; - std::string enumcode; - GenEnum(enum_def, &enumcode); - if (!SaveType(enum_def, enumcode, false)) return false; - } - return true; - } - - bool generateStructs() { - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - auto &struct_def = **it; - std::string declcode; - GenStruct(struct_def, &declcode); - if (!SaveType(struct_def, declcode, true)) return false; - } - return true; - } - - // Begin by declaring namespace and imports. - void BeginFile(const std::string &name_space_name, const bool needs_imports, - std::string *code_ptr) { - std::string &code = *code_ptr; - code += std::string(Comment) + FlatBuffersGeneratedWarning() + "\n\n"; - code += std::string(Comment) + "namespace: " + name_space_name + "\n\n"; - if (needs_imports) { - code += "local flatbuffers = require('flatbuffers')\n\n"; - } - } - - // Save out the generated code for a Lua Table type. - bool SaveType(const Definition &def, const std::string &classcode, - bool needs_imports) { - if (!classcode.length()) return true; - - std::string namespace_dir = path_; - auto &namespaces = def.defined_namespace->components; - for (auto it = namespaces.begin(); it != namespaces.end(); ++it) { - if (it != namespaces.begin()) namespace_dir += kPathSeparator; - namespace_dir += *it; - // std::string init_py_filename = namespace_dir + "/__init__.py"; - // SaveFile(init_py_filename.c_str(), "", false); - } - - std::string code = ""; - BeginFile(LastNamespacePart(*def.defined_namespace), needs_imports, &code); - code += classcode; - code += "\n"; - code += - "return " + NormalizedName(def) + " " + Comment + "return the module"; - std::string filename = - NamespaceDir(*def.defined_namespace) + NormalizedName(def) + ".lua"; - return SaveFile(filename.c_str(), code, false); - } - - private: - std::unordered_set keywords_; -}; - -} // namespace lua - -bool GenerateLua(const Parser &parser, const std::string &path, - const std::string &file_name) { - lua::LuaGenerator generator(parser, path, file_name); - return generator.generate(); -} - -namespace { - -class LuaCodeGenerator : public CodeGenerator { - public: - Status GenerateCode(const Parser &parser, const std::string &path, - const std::string &filename) override { - if (!GenerateLua(parser, path, filename)) { return Status::ERROR; } - return Status::OK; - } - - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; - return Status::NOT_IMPLEMENTED; - } - - Status GenerateMakeRule(const Parser &parser, const std::string &path, - const std::string &filename, - std::string &output) override { - (void)parser; - (void)path; - (void)filename; - (void)output; - return Status::NOT_IMPLEMENTED; - } - - Status GenerateGrpcCode(const Parser &parser, const std::string &path, - const std::string &filename) override { - (void)parser; - (void)path; - (void)filename; - return Status::NOT_IMPLEMENTED; - } - - Status GenerateRootFile(const Parser &parser, - const std::string &path) override { - (void)parser; - (void)path; - return Status::NOT_IMPLEMENTED; - } - - bool IsSchemaOnly() const override { return true; } - - bool SupportsBfbsGeneration() const override { return true; } - - bool SupportsRootFileGeneration() const override { return false; } - - IDLOptions::Language Language() const override { return IDLOptions::kLua; } - - std::string LanguageName() const override { return "Lua"; } -}; -} // namespace - -std::unique_ptr NewLuaCodeGenerator() { - return std::unique_ptr(new LuaCodeGenerator()); -} - -} // namespace flatbuffers diff --git a/src/idl_gen_lua.h b/src/idl_gen_lua.h deleted file mode 100644 index 43974a8c33a..00000000000 --- a/src/idl_gen_lua.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2023 Google Inc. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef FLATBUFFERS_IDL_GEN_LUA_H_ -#define FLATBUFFERS_IDL_GEN_LUA_H_ - -#include "flatbuffers/code_generator.h" - -namespace flatbuffers { - -// Constructs a new Lua code generator. -std::unique_ptr NewLuaCodeGenerator(); - -} // namespace flatbuffers - -#endif // FLATBUFFERS_IDL_GEN_LUA_H_ diff --git a/src/idl_gen_php.cpp b/src/idl_gen_php.cpp index 222cc3d63ae..6d1e3d153cf 100644 --- a/src/idl_gen_php.cpp +++ b/src/idl_gen_php.cpp @@ -939,7 +939,7 @@ class PhpGenerator : public BaseGenerator { }; } // namespace php -bool GeneratePhp(const Parser &parser, const std::string &path, +static bool GeneratePhp(const Parser &parser, const std::string &path, const std::string &file_name) { php::PhpGenerator generator(parser, path, file_name); return generator.generate(); diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 83d589cad87..2d05f877100 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -2135,7 +2135,7 @@ class PythonGenerator : public BaseGenerator { } // namespace python -bool GeneratePython(const Parser &parser, const std::string &path, +static bool GeneratePython(const Parser &parser, const std::string &path, const std::string &file_name) { python::PythonGenerator generator(parser, path, file_name); return generator.generate(); diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index ac6097faae4..f04e2361a44 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -279,7 +279,7 @@ static bool IsOptionalToBuilder(const FieldDef &field) { } } // namespace -bool GenerateRustModuleRootFile(const Parser &parser, +static bool GenerateRustModuleRootFile(const Parser &parser, const std::string &output_dir) { if (!parser.opts.rust_module_root_file) { // Don't generate a root file when generating one file. This isn't an error @@ -2989,13 +2989,13 @@ class RustGenerator : public BaseGenerator { } // namespace rust -bool GenerateRust(const Parser &parser, const std::string &path, +static bool GenerateRust(const Parser &parser, const std::string &path, const std::string &file_name) { rust::RustGenerator generator(parser, path, file_name); return generator.generate(); } -std::string RustMakeRule(const Parser &parser, const std::string &path, +static std::string RustMakeRule(const Parser &parser, const std::string &path, const std::string &file_name) { std::string filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index 695f5a0d753..d180c8d5f6f 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1899,7 +1899,8 @@ class SwiftGenerator : public BaseGenerator { IdlNamer namer_; }; } // namespace swift -bool GenerateSwift(const Parser &parser, const std::string &path, + +static bool GenerateSwift(const Parser &parser, const std::string &path, const std::string &file_name) { swift::SwiftGenerator generator(parser, path, file_name); return generator.generate(); diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index 59f68444133..681e6e1a873 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -104,7 +104,7 @@ struct JsonPrinter { // "[]". template const char *PrintContainer(PrintScalarTag, const Container &c, SizeT size, - const Type &type, int indent, const uint8_t *) { + const Type &type, int indent, const uint8_t *) { const auto elem_indent = indent + Indent(); text += '['; AddNewLine(); @@ -126,7 +126,8 @@ struct JsonPrinter { // "[]". template const char *PrintContainer(PrintPointerTag, const Container &c, SizeT size, - const Type &type, int indent, const uint8_t *prev_val) { + const Type &type, int indent, + const uint8_t *prev_val) { const auto is_struct = IsStruct(type); const auto elem_indent = indent + Indent(); text += '['; @@ -152,7 +153,7 @@ struct JsonPrinter { template const char *PrintVector(const void *val, const Type &type, int indent, - const uint8_t *prev_val) { + const uint8_t *prev_val) { typedef Vector Container; typedef typename PrintTag::type tag; auto &vec = *reinterpret_cast(val); @@ -163,8 +164,8 @@ struct JsonPrinter { // Print an array a sequence of JSON values, comma separated, wrapped in "[]". template const char *PrintArray(const void *val, uint16_t size, const Type &type, - - int indent) { + + int indent) { typedef Array Container; typedef typename PrintTag::type tag; auto &arr = *reinterpret_cast(val); @@ -172,7 +173,7 @@ struct JsonPrinter { } const char *PrintOffset(const void *val, const Type &type, int indent, - const uint8_t *prev_val, soffset_t vector_index) { + const uint8_t *prev_val, soffset_t vector_index) { switch (type.base_type) { case BASE_TYPE_UNION: { // If this assert hits, you have an corrupt buffer, a union type field @@ -196,8 +197,8 @@ struct JsonPrinter { indent); case BASE_TYPE_STRING: { auto s = reinterpret_cast(val); - bool ok = EscapeString(s->c_str(), s->size(), &text, opts.allow_non_utf8, - opts.natural_utf8); + bool ok = EscapeString(s->c_str(), s->size(), &text, + opts.allow_non_utf8, opts.natural_utf8); return ok ? nullptr : "string contains non-utf8 bytes"; } case BASE_TYPE_VECTOR: { @@ -235,9 +236,7 @@ struct JsonPrinter { // clang-format on return nullptr; } - default: - FLATBUFFERS_ASSERT(0); - return "unknown type"; + default: FLATBUFFERS_ASSERT(0); return "unknown type"; } } @@ -265,15 +264,14 @@ struct JsonPrinter { text += "null"; } } else { - PrintScalar( - table->GetField(fd.value.offset, GetFieldDefault(fd)), - fd.value.type, indent); + PrintScalar(table->GetField(fd.value.offset, GetFieldDefault(fd)), + fd.value.type, indent); } } // Generate text for non-scalar field. const char *GenFieldOffset(const FieldDef &fd, const Table *table, bool fixed, - int indent, const uint8_t *prev_val) { + int indent, const uint8_t *prev_val) { const void *val = nullptr; if (fixed) { // The only non-scalar fields in structs are structs or arrays. @@ -372,7 +370,8 @@ struct JsonPrinter { }; static const char *GenerateTextImpl(const Parser &parser, const Table *table, - const StructDef &struct_def, std::string *_text) { + const StructDef &struct_def, + std::string *_text) { JsonPrinter printer(parser, *_text); auto err = printer.GenStruct(struct_def, table, 0); if (err) return err; @@ -382,7 +381,8 @@ static const char *GenerateTextImpl(const Parser &parser, const Table *table, // Generate a text representation of a flatbuffer in JSON format. const char *GenerateTextFromTable(const Parser &parser, const void *table, - const std::string &table_name, std::string *_text) { + const std::string &table_name, + std::string *_text) { auto struct_def = parser.LookupStruct(table_name); if (struct_def == nullptr) { return "unknown struct"; } auto root = static_cast(table); @@ -391,7 +391,7 @@ const char *GenerateTextFromTable(const Parser &parser, const void *table, // Generate a text representation of a flatbuffer in JSON format. const char *GenerateText(const Parser &parser, const void *flatbuffer, - std::string *_text) { + std::string *_text) { FLATBUFFERS_ASSERT(parser.root_struct_def_); // call SetRootType() auto root = parser.opts.size_prefixed ? GetSizePrefixedRoot(flatbuffer) : GetRoot
(flatbuffer); @@ -403,8 +403,9 @@ static std::string TextFileName(const std::string &path, return path + file_name + ".json"; } -const char *GenerateTextFile(const Parser &parser, const std::string &path, - const std::string &file_name) { +static const char *GenerateTextFile(const Parser &parser, + const std::string &path, + const std::string &file_name) { if (parser.opts.use_flexbuffers) { std::string json; parser.flex_root_.ToString(true, parser.opts.strict_json, json); @@ -423,8 +424,8 @@ const char *GenerateTextFile(const Parser &parser, const std::string &path, : "SaveFile failed"; } -std::string TextMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { +static std::string TextMakeRule(const Parser &parser, const std::string &path, + const std::string &file_name) { if (!parser.builder_.GetSize() || !parser.root_struct_def_) return ""; std::string filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index ca072f1c41c..03165036949 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -2161,13 +2161,13 @@ class TsGenerator : public BaseGenerator { }; // namespace ts } // namespace ts -bool GenerateTS(const Parser &parser, const std::string &path, +static bool GenerateTS(const Parser &parser, const std::string &path, const std::string &file_name) { ts::TsGenerator generator(parser, path, file_name); return generator.generate(); } -std::string TSMakeRule(const Parser &parser, const std::string &path, +static std::string TSMakeRule(const Parser &parser, const std::string &path, const std::string &file_name) { std::string filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index 3480bc57f2a..755ddd084df 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -17,7 +17,10 @@ void RunTest(const flatbuffers::IDLOptions &opts, const std::string &proto_path, TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); // Generate fbs. - auto fbs = flatbuffers::GenerateFBS(parser, "test", true); + std::unique_ptr fbs_generator = NewFBSCodeGenerator(true); + std::string fbs; + TEST_EQ(fbs_generator->GenerateCodeString(parser, "test", fbs), + CodeGenerator::Status::OK); // Ensure generated file is parsable. flatbuffers::Parser parser2; @@ -27,7 +30,10 @@ void RunTest(const flatbuffers::IDLOptions &opts, const std::string &proto_path, flatbuffers::Parser import_parser(opts); TEST_EQ(import_parser.Parse(import_proto_file.c_str(), include_directories), true); - auto import_fbs = flatbuffers::GenerateFBS(import_parser, "test", true); + std::string import_fbs; + TEST_EQ(fbs_generator->GenerateCodeString(import_parser, "test", import_fbs), + CodeGenerator::Status::OK); + // auto import_fbs = flatbuffers::GenerateFBS(import_parser, "test", true); // Since `imported.fbs` isn't in the filesystem AbsolutePath can't figure it // out by itself. We manually construct it so Parser works. std::string imported_fbs = flatbuffers::PosixPath( From 3e6cd51b6307d680ac8eb6a3f1671fb756228e8b Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 9 May 2023 22:42:31 -0700 Subject: [PATCH 05/35] fixed bfbs gen to pass extra options (#7949) --- goldens/generate_goldens.py | 5 +- goldens/lua/Galaxy.lua | 48 +++++++++ goldens/lua/Universe.lua | 88 +++++++++++++++ goldens/nim/Galaxy.nim | 26 +++++ goldens/nim/Universe.nim | 46 ++++++++ include/flatbuffers/code_generator.h | 7 +- src/bfbs_gen.h | 10 +- src/bfbs_gen_lua.cpp | 12 ++- src/bfbs_gen_nim.cpp | 11 +- src/flatc.cpp | 7 +- src/idl_gen_binary.cpp | 11 +- src/idl_gen_cpp.cpp | 9 +- src/idl_gen_csharp.cpp | 117 +++++++++++--------- src/idl_gen_dart.cpp | 17 ++- src/idl_gen_fbs.cpp | 15 ++- src/idl_gen_go.cpp | 7 +- src/idl_gen_java.cpp | 51 ++++----- src/idl_gen_json_schema.cpp | 15 ++- src/idl_gen_kotlin.cpp | 9 +- src/idl_gen_lobster.cpp | 32 +++--- src/idl_gen_php.cpp | 7 +- src/idl_gen_python.cpp | 155 ++++++++++++++------------- src/idl_gen_rust.cpp | 103 +++++++++++------- src/idl_gen_swift.cpp | 44 ++++---- src/idl_gen_text.cpp | 5 +- src/idl_gen_ts.cpp | 16 ++- 26 files changed, 570 insertions(+), 303 deletions(-) create mode 100644 goldens/lua/Galaxy.lua create mode 100644 goldens/lua/Universe.lua create mode 100644 goldens/nim/Galaxy.nim create mode 100644 goldens/nim/Universe.nim diff --git a/goldens/generate_goldens.py b/goldens/generate_goldens.py index f04854aabaf..d521b812dc6 100755 --- a/goldens/generate_goldens.py +++ b/goldens/generate_goldens.py @@ -23,9 +23,8 @@ GenerateJava() GenerateKotlin() GenerateLobster() -# TODO these doesn't respect the output prefix, fix and reenable -# GenerateLua() -# GenerateNim() +GenerateLua() +GenerateNim() GeneratePhp() GeneratePython() GenerateRust() diff --git a/goldens/lua/Galaxy.lua b/goldens/lua/Galaxy.lua new file mode 100644 index 00000000000..071a1c80a1e --- /dev/null +++ b/goldens/lua/Galaxy.lua @@ -0,0 +1,48 @@ +--[[ Galaxy + + Automatically generated by the FlatBuffers compiler, do not modify. + Or modify. I'm a message, not a cop. + + flatc version: 23.5.9 + + Declared by : //basic.fbs + Rooting type : Universe (//basic.fbs) + +--]] + +local flatbuffers = require('flatbuffers') + +local Galaxy = {} +local mt = {} + +function Galaxy.New() + local o = {} + setmetatable(o, {__index = mt}) + return o +end + +function mt:Init(buf, pos) + self.view = flatbuffers.view.New(buf, pos) +end + +function mt:NumStars() + local o = self.view:Offset(4) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Int64, self.view.pos + o) + end + return 0 +end + +function Galaxy.Start(builder) + builder:StartObject(1) +end + +function Galaxy.AddNumStars(builder, numStars) + builder:PrependInt64Slot(0, numStars, 0) +end + +function Galaxy.End(builder) + return builder:EndObject() +end + +return Galaxy \ No newline at end of file diff --git a/goldens/lua/Universe.lua b/goldens/lua/Universe.lua new file mode 100644 index 00000000000..d7ef085ebcb --- /dev/null +++ b/goldens/lua/Universe.lua @@ -0,0 +1,88 @@ +--[[ Universe + + Automatically generated by the FlatBuffers compiler, do not modify. + Or modify. I'm a message, not a cop. + + flatc version: 23.5.9 + + Declared by : //basic.fbs + Rooting type : Universe (//basic.fbs) + +--]] + +local __Galaxy = require('Galaxy') +local flatbuffers = require('flatbuffers') + +local Universe = {} +local mt = {} + +function Universe.New() + local o = {} + setmetatable(o, {__index = mt}) + return o +end + +function Universe.GetRootAsUniverse(buf, offset) + if type(buf) == "string" then + buf = flatbuffers.binaryArray.New(buf) + end + + local n = flatbuffers.N.UOffsetT:Unpack(buf, offset) + local o = Universe.New() + o:Init(buf, n + offset) + return o +end + +function mt:Init(buf, pos) + self.view = flatbuffers.view.New(buf, pos) +end + +function mt:Age() + local o = self.view:Offset(4) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float64, self.view.pos + o) + end + return 0.0 +end + +function mt:Galaxies(j) + local o = self.view:Offset(6) + if o ~= 0 then + local x = self.view:Vector(o) + x = x + ((j-1) * 4) + x = self.view:Indirect(x) + local obj = __Galaxy.New() + obj:Init(self.view.bytes, x) + return obj + end +end + +function mt:GalaxiesLength() + local o = self.view:Offset(6) + if o ~= 0 then + return self.view:VectorLen(o) + end + return 0 +end + +function Universe.Start(builder) + builder:StartObject(2) +end + +function Universe.AddAge(builder, age) + builder:PrependFloat64Slot(0, age, 0.0) +end + +function Universe.AddGalaxies(builder, galaxies) + builder:PrependUOffsetTRelativeSlot(1, galaxies, 0) +end + +function Universe.StartGalaxiesVector(builder, numElems) + return builder:StartVector(4, numElems, 4) +end + +function Universe.End(builder) + return builder:EndObject() +end + +return Universe \ No newline at end of file diff --git a/goldens/nim/Galaxy.nim b/goldens/nim/Galaxy.nim new file mode 100644 index 00000000000..7728c3677ae --- /dev/null +++ b/goldens/nim/Galaxy.nim @@ -0,0 +1,26 @@ +#[ Galaxy + Automatically generated by the FlatBuffers compiler, do not modify. + Or modify. I'm a message, not a cop. + + flatc version: 23.5.9 + + Declared by : //basic.fbs + Rooting type : Universe (//basic.fbs) +]# + +import flatbuffers + +type Galaxy* = object of FlatObj +func numStars*(self: Galaxy): int64 = + let o = self.tab.Offset(4) + if o != 0: + return Get[int64](self.tab, self.tab.Pos + o) + return 0 +func `numStars=`*(self: var Galaxy, n: int64): bool = + return self.tab.MutateSlot(4, n) +proc GalaxyStart*(builder: var Builder) = + builder.StartObject(1) +proc GalaxyAddnumStars*(builder: var Builder, numStars: int64) = + builder.PrependSlot(0, numStars, default(int64)) +proc GalaxyEnd*(builder: var Builder): uoffset = + return builder.EndObject() diff --git a/goldens/nim/Universe.nim b/goldens/nim/Universe.nim new file mode 100644 index 00000000000..3a4e43d2b07 --- /dev/null +++ b/goldens/nim/Universe.nim @@ -0,0 +1,46 @@ +#[ Universe + Automatically generated by the FlatBuffers compiler, do not modify. + Or modify. I'm a message, not a cop. + + flatc version: 23.5.9 + + Declared by : //basic.fbs + Rooting type : Universe (//basic.fbs) +]# + +import Galaxy as Galaxy +import flatbuffers +import std/options + +type Universe* = object of FlatObj +func age*(self: Universe): float64 = + let o = self.tab.Offset(4) + if o != 0: + return Get[float64](self.tab, self.tab.Pos + o) + return 0.0 +func `age=`*(self: var Universe, n: float64): bool = + return self.tab.MutateSlot(4, n) +func galaxiesLength*(self: Universe): int = + let o = self.tab.Offset(6) + if o != 0: + return self.tab.VectorLen(o) +func galaxies*(self: Universe, j: int): Galaxy.Galaxy = + let o = self.tab.Offset(6) + if o != 0: + var x = self.tab.Vector(o) + x += j.uoffset * 4.uoffset + return Galaxy.Galaxy(tab: Vtable(Bytes: self.tab.Bytes, Pos: x)) +func galaxies*(self: Universe): seq[Galaxy.Galaxy] = + let len = self.galaxiesLength + for i in countup(0, len - 1): + result.add(self.galaxies(i)) +proc UniverseStart*(builder: var Builder) = + builder.StartObject(2) +proc UniverseAddage*(builder: var Builder, age: float64) = + builder.PrependSlot(0, age, default(float64)) +proc UniverseAddgalaxies*(builder: var Builder, galaxies: uoffset) = + builder.PrependSlot(1, galaxies, default(uoffset)) +proc UniverseStartgalaxiesVector*(builder: var Builder, numElems: uoffset) = + builder.StartVector(4, numElems, 4) +proc UniverseEnd*(builder: var Builder): uoffset = + return builder.EndObject() diff --git a/include/flatbuffers/code_generator.h b/include/flatbuffers/code_generator.h index c9e86bb5027..2971e556eec 100644 --- a/include/flatbuffers/code_generator.h +++ b/include/flatbuffers/code_generator.h @@ -23,6 +23,10 @@ namespace flatbuffers { +struct CodeGenOptions { + std::string output_path; +}; + // A code generator interface for producing converting flatbuffer schema into // code. class CodeGenerator { @@ -56,7 +60,8 @@ class CodeGenerator { // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. - virtual Status GenerateCode(const uint8_t *buffer, int64_t length) = 0; + virtual Status GenerateCode(const uint8_t *buffer, int64_t length, + const CodeGenOptions &options) = 0; virtual Status GenerateMakeRule(const Parser &parser, const std::string &path, const std::string &filename, diff --git a/src/bfbs_gen.h b/src/bfbs_gen.h index ed20dc8965e..c1beb0247ed 100644 --- a/src/bfbs_gen.h +++ b/src/bfbs_gen.h @@ -101,15 +101,15 @@ class BaseBfbsGenerator : public CodeGenerator { virtual ~BaseBfbsGenerator() {} BaseBfbsGenerator() : schema_(nullptr) {} - virtual Status GenerateFromSchema( - const reflection::Schema *schema) = 0; + virtual Status GenerateFromSchema(const reflection::Schema *schema, + const CodeGenOptions &options) = 0; virtual uint64_t SupportedAdvancedFeatures() const = 0; // Override of the Generator::GenerateCode method that does the initial // deserialization and verification steps. - Status GenerateCode(const uint8_t *buffer, - int64_t length) FLATBUFFERS_OVERRIDE { + Status GenerateCode(const uint8_t *buffer, int64_t length, + const CodeGenOptions &options) FLATBUFFERS_OVERRIDE { flatbuffers::Verifier verifier(buffer, static_cast(length)); if (!reflection::VerifySchemaBuffer(verifier)) { return FAILED_VERIFICATION; @@ -124,7 +124,7 @@ class BaseBfbsGenerator : public CodeGenerator { return FAILED_VERIFICATION; } - Status status = GenerateFromSchema(schema_); + Status status = GenerateFromSchema(schema_, options); schema_ = nullptr; return status; } diff --git a/src/bfbs_gen_lua.cpp b/src/bfbs_gen_lua.cpp index efe32005881..b9883424a5b 100644 --- a/src/bfbs_gen_lua.cpp +++ b/src/bfbs_gen_lua.cpp @@ -28,6 +28,7 @@ #include "bfbs_namer.h" // The intermediate representation schema. +#include "flatbuffers/code_generator.h" #include "flatbuffers/reflection.h" #include "flatbuffers/reflection_generated.h" @@ -78,7 +79,10 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { flatc_version_(flatc_version), namer_(LuaDefaultConfig(), LuaKeywords()) {} - Status GenerateFromSchema(const r::Schema *schema) FLATBUFFERS_OVERRIDE { + Status GenerateFromSchema(const r::Schema *schema, + const CodeGenOptions &options) + FLATBUFFERS_OVERRIDE { + options_ = options; if (!GenerateEnums(schema->enums())) { return ERROR; } if (!GenerateObjects(schema->objects(), schema->root_table())) { return ERROR; @@ -89,7 +93,7 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { using BaseBfbsGenerator::GenerateCode; Status GenerateCode(const Parser &, const std::string &, - const std::string &) FLATBUFFERS_OVERRIDE { + const std::string &) override { return Status::NOT_IMPLEMENTED; } @@ -652,12 +656,14 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { // TODO(derekbailey): figure out a save file without depending on util.h EnsureDirExists(path); - const std::string file_name = path + "/" + namer_.File(name); + const std::string file_name = options_.output_path + path + "/" + namer_.File(name); SaveFile(file_name.c_str(), code, false); } std::unordered_set keywords_; std::map requires_; + CodeGenOptions options_; + const r::Object *current_obj_; const r::Enum *current_enum_; const std::string flatc_version_; diff --git a/src/bfbs_gen_nim.cpp b/src/bfbs_gen_nim.cpp index 45bd3c33d41..a8f4ee0c740 100644 --- a/src/bfbs_gen_nim.cpp +++ b/src/bfbs_gen_nim.cpp @@ -28,6 +28,7 @@ #include "bfbs_namer.h" // The intermediate representation schema. +#include "flatbuffers/code_generator.h" #include "flatbuffers/reflection.h" #include "flatbuffers/reflection_generated.h" @@ -95,7 +96,10 @@ class NimBfbsGenerator : public BaseBfbsGenerator { flatc_version_(flatc_version), namer_(NimDefaultConfig(), NimKeywords()) {} - Status GenerateFromSchema(const r::Schema *schema) FLATBUFFERS_OVERRIDE { + Status GenerateFromSchema(const r::Schema *schema, + const CodeGenOptions &options) + FLATBUFFERS_OVERRIDE { + options_ = options; ForAllEnums(schema->enums(), [&](const r::Enum *enum_def) { StartCodeBlock(enum_def); GenerateEnum(enum_def); @@ -671,12 +675,15 @@ class NimBfbsGenerator : public BaseBfbsGenerator { // TODO(derekbailey): figure out a save file without depending on util.h EnsureDirExists(path); - const std::string file_name = path + "/" + namer_.File(name); + const std::string file_name = + options_.output_path + path + "/" + namer_.File(name); SaveFile(file_name.c_str(), code, false); } std::unordered_set keywords_; std::map imports_; + CodeGenOptions options_; + const r::Object *current_obj_; const r::Enum *current_enum_; const std::string flatc_version_; diff --git a/src/flatc.cpp b/src/flatc.cpp index c0e5dbc7bb9..202c3d644a5 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -866,8 +866,11 @@ std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, // Prefer bfbs generators if present. if (code_generator->SupportsBfbsGeneration()) { - const CodeGenerator::Status status = - code_generator->GenerateCode(bfbs_buffer, bfbs_length); + CodeGenOptions code_gen_options; + code_gen_options.output_path = options.output_path; + + const CodeGenerator::Status status = code_generator->GenerateCode( + bfbs_buffer, bfbs_length, code_gen_options); if (status != CodeGenerator::Status::OK) { Error("Unable to generate " + code_generator->LanguageName() + " for " + filebase + code_generator->status_detail + diff --git a/src/idl_gen_binary.cpp b/src/idl_gen_binary.cpp index 90922cbd995..7ed0a99ca6e 100644 --- a/src/idl_gen_binary.cpp +++ b/src/idl_gen_binary.cpp @@ -34,13 +34,13 @@ namespace flatbuffers { namespace { static std::string BinaryFileName(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { auto ext = parser.file_extension_.length() ? parser.file_extension_ : "bin"; return path + file_name + "." + ext; } static bool GenerateBinary(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { if (parser.opts.use_flexbuffers) { auto data_vec = parser.flex_builder_.GetBuffer(); auto data_ptr = reinterpret_cast(data(data_vec)); @@ -57,7 +57,7 @@ static bool GenerateBinary(const Parser &parser, const std::string &path, } static std::string BinaryMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { if (!parser.builder_.GetSize()) return ""; std::string filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); @@ -81,9 +81,8 @@ class BinaryCodeGenerator : public CodeGenerator { // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index c090fbff65e..39ab826eb82 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -4067,7 +4067,7 @@ class CppGenerator : public BaseGenerator { } // namespace cpp static bool GenerateCPP(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { cpp::IDLOptionsCpp opts(parser.opts); // The '--cpp_std' argument could be extended (like ASAN): // Example: "flatc --cpp_std c++17:option1:option2". @@ -4106,7 +4106,7 @@ static bool GenerateCPP(const Parser &parser, const std::string &path, } static std::string CPPMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { const auto filebase = StripPath(StripExtension(file_name)); cpp::CppGenerator geneartor(parser, path, file_name, parser.opts); const auto included_files = parser.GetIncludedFilesRecursive(file_name); @@ -4130,9 +4130,8 @@ class CppCodeGenerator : public CodeGenerator { // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index fd033b82495..a74214c8166 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -625,7 +625,8 @@ class CSharpGenerator : public BaseGenerator { } // Get the value of a table verification function start - void GetStartOfTableVerifier(const StructDef &struct_def, std::string *code_ptr) { + void GetStartOfTableVerifier(const StructDef &struct_def, + std::string *code_ptr) { std::string &code = *code_ptr; code += "\n"; code += "static public class " + struct_def.name + "Verify\n"; @@ -645,17 +646,18 @@ class CSharpGenerator : public BaseGenerator { } std::string GetNestedFlatBufferName(const FieldDef &field) { - std::string name; + std::string name; if (field.nested_flatbuffer) { name = NamespacedName(*field.nested_flatbuffer); } else { name = ""; } - return name ; + return name; } // Generate the code to call the appropriate Verify function(s) for a field. - void GenVerifyCall(CodeWriter &code_, const FieldDef &field, const char *prefix) { + void GenVerifyCall(CodeWriter &code_, const FieldDef &field, + const char *prefix) { code_.SetValue("PRE", prefix); code_.SetValue("NAME", ConvertCase(field.name, Case::kUpperCamel)); code_.SetValue("REQUIRED", field.IsRequired() ? "Required" : ""); @@ -663,14 +665,16 @@ class CSharpGenerator : public BaseGenerator { code_.SetValue("TYPE", GenTypeGet(field.value.type)); code_.SetValue("INLINESIZE", NumToString(InlineSize(field.value.type))); code_.SetValue("OFFSET", NumToString(field.value.offset)); - + if (IsScalar(field.value.type.base_type) || IsStruct(field.value.type)) { code_.SetValue("ALIGN", NumToString(InlineAlignment(field.value.type))); code_ += - "{{PRE}} && verifier.VerifyField(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, {{INLINESIZE}} /*{{TYPE}}*/, {{ALIGN}}, {{REQUIRED_FLAG}})"; + "{{PRE}} && verifier.VerifyField(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{INLINESIZE}} /*{{TYPE}}*/, {{ALIGN}}, " + "{{REQUIRED_FLAG}})"; } else { - // TODO - probably code below should go to this 'else' - code_ += "{{PRE}}VerifyOffset{{REQUIRED}}(verifier, {{OFFSET}})\\"; + // TODO - probably code below should go to this 'else' - code_ += + // "{{PRE}}VerifyOffset{{REQUIRED}}(verifier, {{OFFSET}})\\"; } switch (field.value.type.base_type) { @@ -679,37 +683,47 @@ class CSharpGenerator : public BaseGenerator { code_.SetValue("ENUM_NAME1", field.value.type.enum_def->name); code_.SetValue("ENUM_NAME", union_name); code_.SetValue("SUFFIX", UnionTypeFieldSuffix()); - // Caution: This construction assumes, that UNION type id element has been created just before union data and - // its offset precedes union. Such assumption is common in flatbuffer implementation - code_.SetValue("TYPE_ID_OFFSET", NumToString(field.value.offset - sizeof(voffset_t))); - code_ += "{{PRE}} && verifier.VerifyUnion(tablePos, {{TYPE_ID_OFFSET}}, " - "{{OFFSET}} /*{{NAME}}*/, {{ENUM_NAME}}Verify.Verify, {{REQUIRED_FLAG}})"; + // Caution: This construction assumes, that UNION type id element has + // been created just before union data and its offset precedes union. + // Such assumption is common in flatbuffer implementation + code_.SetValue("TYPE_ID_OFFSET", + NumToString(field.value.offset - sizeof(voffset_t))); + code_ += + "{{PRE}} && verifier.VerifyUnion(tablePos, " + "{{TYPE_ID_OFFSET}}, " + "{{OFFSET}} /*{{NAME}}*/, {{ENUM_NAME}}Verify.Verify, " + "{{REQUIRED_FLAG}})"; break; } case BASE_TYPE_STRUCT: { if (!field.value.type.struct_def->fixed) { - code_ += "{{PRE}} && verifier.VerifyTable(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, {{TYPE}}Verify.Verify, {{REQUIRED_FLAG}})"; + code_ += + "{{PRE}} && verifier.VerifyTable(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{TYPE}}Verify.Verify, " + "{{REQUIRED_FLAG}})"; } break; } case BASE_TYPE_STRING: { - code_ += "{{PRE}} && verifier.VerifyString(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, {{REQUIRED_FLAG}})"; + code_ += + "{{PRE}} && verifier.VerifyString(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{REQUIRED_FLAG}})"; break; } case BASE_TYPE_VECTOR: { - switch (field.value.type.element) { case BASE_TYPE_STRING: { - code_ += "{{PRE}} && verifier.VerifyVectorOfStrings(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, {{REQUIRED_FLAG}})"; + code_ += + "{{PRE}} && verifier.VerifyVectorOfStrings(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{REQUIRED_FLAG}})"; break; } case BASE_TYPE_STRUCT: { if (!field.value.type.struct_def->fixed) { - code_ += "{{PRE}} && verifier.VerifyVectorOfTables(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, {{TYPE}}Verify.Verify, {{REQUIRED_FLAG}})"; + code_ += + "{{PRE}} && verifier.VerifyVectorOfTables(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{TYPE}}Verify.Verify, " + "{{REQUIRED_FLAG}})"; } else { code_.SetValue( "VECTOR_ELEM_INLINESIZE", @@ -733,16 +747,22 @@ class CSharpGenerator : public BaseGenerator { if (!nfn.empty()) { code_.SetValue("CPP_NAME", nfn); // FIXME: file_identifier. - code_ += "{{PRE}} && verifier.VerifyNestedBuffer(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, {{CPP_NAME}}Verify.Verify, {{REQUIRED_FLAG}})"; + code_ += + "{{PRE}} && verifier.VerifyNestedBuffer(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{CPP_NAME}}Verify.Verify, " + "{{REQUIRED_FLAG}})"; } else if (field.flexbuffer) { - code_ += "{{PRE}} && verifier.VerifyNestedBuffer(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, null, {{REQUIRED_FLAG}})"; + code_ += + "{{PRE}} && verifier.VerifyNestedBuffer(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, null, {{REQUIRED_FLAG}})"; } else { - code_.SetValue("VECTOR_ELEM_INLINESIZE", NumToString(InlineSize(field.value.type.VectorType()))); + code_.SetValue( + "VECTOR_ELEM_INLINESIZE", + NumToString(InlineSize(field.value.type.VectorType()))); code_ += - "{{PRE}} && verifier.VerifyVectorOfData(tablePos, " - "{{OFFSET}} /*{{NAME}}*/, {{VECTOR_ELEM_INLINESIZE}} /*{{TYPE}}*/, {{REQUIRED_FLAG}})"; + "{{PRE}} && verifier.VerifyVectorOfData(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{VECTOR_ELEM_INLINESIZE}} " + "/*{{TYPE}}*/, {{REQUIRED_FLAG}})"; } break; } @@ -758,7 +778,7 @@ class CSharpGenerator : public BaseGenerator { // Generate table constructors, conditioned on its members' types. void GenTableVerifier(const StructDef &struct_def, std::string *code_ptr) { CodeWriter code_; - + GetStartOfTableVerifier(struct_def, code_ptr); // Generate struct fields accessors @@ -771,7 +791,7 @@ class CSharpGenerator : public BaseGenerator { } *code_ptr += code_.ToString(); - + GetEndOfTableVerifier(code_ptr); } @@ -787,7 +807,7 @@ class CSharpGenerator : public BaseGenerator { // verification - instead structure size is verified using VerifyField } else { // Create table verification function - GenTableVerifier(struct_def, code_ptr); + GenTableVerifier(struct_def, code_ptr); } } @@ -1602,8 +1622,7 @@ class CSharpGenerator : public BaseGenerator { if (union_type.enum_def) { const auto &enum_def = *union_type.enum_def; - auto ret = - "\n\nstatic public class " + enum_def.name + "Verify\n"; + auto ret = "\n\nstatic public class " + enum_def.name + "Verify\n"; ret += "{\n"; ret += " static public bool Verify(Google.FlatBuffers.Verifier verifier, " @@ -1615,25 +1634,26 @@ class CSharpGenerator : public BaseGenerator { ret += " switch((" + enum_def.name + ")typeId)\n"; ret += " {\n"; - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { + for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); + ++it) { const auto &ev = **it; if (ev.IsZero()) { continue; } ret += " case " + Name(enum_def) + "." + Name(ev) + ":\n"; if (IsString(ev.union_type)) { - ret += - " result = verifier.VerifyUnionString(tablePos);\n"; + ret += " result = verifier.VerifyUnionString(tablePos);\n"; ret += " break;"; } else if (ev.union_type.base_type == BASE_TYPE_STRUCT) { - if (! ev.union_type.struct_def->fixed) { + if (!ev.union_type.struct_def->fixed) { auto type = GenTypeGet(ev.union_type); - ret += " result = " + type + "Verify.Verify(verifier, tablePos);\n"; + ret += " result = " + type + + "Verify.Verify(verifier, tablePos);\n"; } else { ret += " result = verifier.VerifyUnionData(tablePos, " + - NumToString(InlineSize(ev.union_type)) + ", " + - NumToString(InlineAlignment(ev.union_type)) + - ");\n";; + NumToString(InlineSize(ev.union_type)) + ", " + + NumToString(InlineAlignment(ev.union_type)) + ");\n"; + ; } ret += " break;"; } else { @@ -1676,7 +1696,7 @@ class CSharpGenerator : public BaseGenerator { // Type code += " public " + enum_def.name + " Type { get; set; }\n"; // Value - code += " public object " + class_member + " { get; set; }\n"; + code += " public object " + class_member + " { get; set; }\n"; code += "\n"; // Constructor code += " public " + union_name + "() {\n"; @@ -1736,7 +1756,7 @@ class CSharpGenerator : public BaseGenerator { code += "}\n\n"; code += GenUnionVerify(enum_def.underlying_type); - + // JsonConverter if (opts.cs_gen_json_serializer) { if (enum_def.attributes.Lookup("private")) { @@ -1773,7 +1793,7 @@ class CSharpGenerator : public BaseGenerator { " _o, " "Newtonsoft.Json.JsonSerializer serializer) {\n"; code += " if (_o == null) return;\n"; - code += " serializer.Serialize(writer, _o." + class_member + ");\n"; + code += " serializer.Serialize(writer, _o." + class_member + ");\n"; code += " }\n"; code += " public override object ReadJson(Newtonsoft.Json.JsonReader " @@ -2499,7 +2519,7 @@ class CSharpGenerator : public BaseGenerator { } // namespace csharp static bool GenerateCSharp(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { csharp::CSharpGenerator generator(parser, path, file_name); return generator.generate(); } @@ -2514,9 +2534,8 @@ class CSharpCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index 2b4d862c647..a4df1f4dfcb 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -90,8 +90,8 @@ class DartGenerator : public BaseGenerator { template void import_generator(const std::vector &definitions, - const std::string &included, - std::set &imports) { + const std::string &included, + std::set &imports) { for (const auto &item : definitions) { if (item->file == included) { std::string component = namer_.Namespace(*item->defined_namespace); @@ -760,9 +760,7 @@ class DartGenerator : public BaseGenerator { std::string getDefaultValue(const Value &value) const { if (!value.constant.empty() && value.constant != "0") { - if (IsBool(value.type.base_type)) { - return "true"; - } + if (IsBool(value.type.base_type)) { return "true"; } if (IsScalar(value.type.base_type)) { if (StringIsFlatbufferNan(value.constant)) { return "double.nan"; @@ -1125,13 +1123,13 @@ class DartGenerator : public BaseGenerator { } // namespace dart static bool GenerateDart(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { dart::DartGenerator generator(parser, path, file_name); return generator.generate(); } static std::string DartMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { auto filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); dart::DartGenerator generator(parser, path, file_name); @@ -1154,9 +1152,8 @@ class DartCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_fbs.cpp b/src/idl_gen_fbs.cpp index 4658fe9d42f..f9844854d44 100644 --- a/src/idl_gen_fbs.cpp +++ b/src/idl_gen_fbs.cpp @@ -253,8 +253,9 @@ static void GenNameSpace(const Namespace &name_space, std::string *_schema, } // Generate a flatbuffer schema from the Parser's internal representation. -static std::string GenerateFBS(const Parser &parser, const std::string &file_name, - bool no_log = false) { +static std::string GenerateFBS(const Parser &parser, + const std::string &file_name, + bool no_log = false) { // Proto namespaces may clash with table names, escape the ones that were // generated from a table: for (auto it = parser.namespaces_.begin(); it != parser.namespaces_.end(); @@ -376,7 +377,7 @@ static std::string GenerateFBS(const Parser &parser, const std::string &file_nam } static bool GenerateFBS(const Parser &parser, const std::string &path, - const std::string &file_name, bool no_log = false) { + const std::string &file_name, bool no_log = false) { const std::string fbs = GenerateFBS(parser, file_name, no_log); if (fbs.empty()) { return false; } // TODO: Use LogCompilerWarn @@ -388,7 +389,6 @@ static bool GenerateFBS(const Parser &parser, const std::string &path, return SaveFile((path + file_name + ".fbs").c_str(), fbs, false); } - class FBSCodeGenerator : public CodeGenerator { public: explicit FBSCodeGenerator(const bool no_log) : no_log_(no_log) {} @@ -400,16 +400,15 @@ class FBSCodeGenerator : public CodeGenerator { } Status GenerateCodeString(const Parser &parser, const std::string &filename, - std::string &output) override { + std::string &output) override { output = GenerateFBS(parser, filename, no_log_); return Status::OK; } // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index dcfac099a21..e1e84a0e585 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -1607,7 +1607,7 @@ class GoGenerator : public BaseGenerator { } // namespace go static bool GenerateGo(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { go::GoGenerator generator(parser, path, file_name, parser.opts.go_namespace); return generator.generate(); } @@ -1622,9 +1622,8 @@ class GoCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index b7c9d564331..4eb8274f87e 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -69,9 +69,10 @@ static std::set JavaKeywords() { }; } -static const TypedFloatConstantGenerator JavaFloatGen("Double.", "Float.", "NaN", - "POSITIVE_INFINITY", - "NEGATIVE_INFINITY"); +static const TypedFloatConstantGenerator JavaFloatGen("Double.", "Float.", + "NaN", + "POSITIVE_INFINITY", + "NEGATIVE_INFINITY"); static const CommentConfig comment_config = { "/**", @@ -79,7 +80,7 @@ static const CommentConfig comment_config = { " */", }; -} // namespace +} // namespace class JavaGenerator : public BaseGenerator { struct FieldArrayLength { @@ -89,16 +90,15 @@ class JavaGenerator : public BaseGenerator { public: JavaGenerator(const Parser &parser, const std::string &path, - const std::string &file_name, - const std::string &package_prefix) + const std::string &file_name, const std::string &package_prefix) : BaseGenerator(parser, path, file_name, "", ".", "java"), - cur_name_space_(nullptr), + cur_name_space_(nullptr), namer_(WithFlagOptions(JavaDefaultConfig(), parser.opts, path), JavaKeywords()) { if (!package_prefix.empty()) { std::istringstream iss(package_prefix); std::string component; - while(std::getline(iss, component, '.')) { + while (std::getline(iss, component, '.')) { package_prefix_ns_.components.push_back(component); } package_prefix_ = package_prefix_ns_.GetFullyQualifiedName("") + "."; @@ -184,10 +184,8 @@ class JavaGenerator : public BaseGenerator { code = "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; Namespace combined_ns = package_prefix_ns_; - std::copy( - ns.components.begin(), - ns.components.end(), - std::back_inserter(combined_ns.components)); + std::copy(ns.components.begin(), ns.components.end(), + std::back_inserter(combined_ns.components)); const std::string namespace_name = FullNamespace(".", combined_ns); if (!namespace_name.empty()) { @@ -368,9 +366,9 @@ class JavaGenerator : public BaseGenerator { FLATBUFFERS_ASSERT(value.type.enum_def); auto &enum_def = *value.type.enum_def; auto enum_val = enum_def.FindByValue(value.constant); - return - enum_val ? Prefixed(namer_.NamespacedEnumVariant(enum_def, *enum_val)) - : value.constant; + return enum_val + ? Prefixed(namer_.NamespacedEnumVariant(enum_def, *enum_val)) + : value.constant; } std::string GenDefaultValue(const FieldDef &field) const { @@ -1653,9 +1651,9 @@ class JavaGenerator : public BaseGenerator { break; case BASE_TYPE_UNION: array_type = "int"; - element_type = - Prefixed(namer_.NamespacedType(*field.value.type.enum_def)) - + "Union"; + element_type = Prefixed(namer_.NamespacedType( + *field.value.type.enum_def)) + + "Union"; to_array = element_type + ".pack(builder, _o." + namer_.Method("get", property_name) + "()[_j])"; break; @@ -2007,8 +2005,7 @@ class JavaGenerator : public BaseGenerator { case BASE_TYPE_UNION: { if (wrap_in_namespace) { - type_name = - Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; + type_name = Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; } else { type_name = namer_.Type(*type.enum_def) + "Union"; } @@ -2042,15 +2039,13 @@ class JavaGenerator : public BaseGenerator { type_name.replace(type_name.length() - type_name_length, type_name_length, new_type_name); } else if (type.element == BASE_TYPE_UNION) { - type_name = - Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; + type_name = Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; } break; } case BASE_TYPE_UNION: { - type_name = - Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; + type_name = Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; break; } default: break; @@ -2192,12 +2187,11 @@ class JavaGenerator : public BaseGenerator { std::string package_prefix_; Namespace package_prefix_ns_; - }; } // namespace java static bool GenerateJava(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { java::JavaGenerator generator(parser, path, file_name, parser.opts.java_package_prefix); return generator.generate(); @@ -2213,9 +2207,8 @@ class JavaCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_json_schema.cpp b/src/idl_gen_json_schema.cpp index 2bf99faebf9..ed891ab2e26 100644 --- a/src/idl_gen_json_schema.cpp +++ b/src/idl_gen_json_schema.cpp @@ -30,8 +30,7 @@ namespace jsons { namespace { -template -static std::string GenFullName(const T *enum_def) { +template static std::string GenFullName(const T *enum_def) { std::string full_name; const auto &name_spaces = enum_def->defined_namespace->components; for (auto ns = name_spaces.cbegin(); ns != name_spaces.cend(); ++ns) { @@ -41,8 +40,7 @@ static std::string GenFullName(const T *enum_def) { return full_name; } -template -static std::string GenTypeRef(const T *enum_def) { +template static std::string GenTypeRef(const T *enum_def) { return "\"$ref\" : \"#/definitions/" + GenFullName(enum_def) + "\""; } @@ -144,7 +142,7 @@ static std::string GenType(const Type &type) { } } -} // namespace +} // namespace class JsonSchemaGenerator : public BaseGenerator { private: @@ -320,7 +318,7 @@ class JsonSchemaGenerator : public BaseGenerator { } // namespace jsons static bool GenerateJsonSchema(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { jsons::JsonSchemaGenerator generator(parser, path, file_name); if (!generator.generate()) { return false; } return generator.save(); @@ -336,9 +334,8 @@ class JsonSchemaCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index f90f0beb98b..0578376c32a 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -70,7 +70,7 @@ static Namer::Config KotlinDefaultConfig() { /*filename_suffix=*/"", /*filename_extension=*/".kt" }; } -} // namespace +} // namespace class KotlinGenerator : public BaseGenerator { public: @@ -1594,7 +1594,7 @@ class KotlinGenerator : public BaseGenerator { } // namespace kotlin static bool GenerateKotlin(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { kotlin::KotlinGenerator generator(parser, path, file_name); return generator.generate(); } @@ -1609,9 +1609,8 @@ class KotlinCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_lobster.cpp b/src/idl_gen_lobster.cpp index 38ac33abc03..37c95e96005 100644 --- a/src/idl_gen_lobster.cpp +++ b/src/idl_gen_lobster.cpp @@ -63,8 +63,10 @@ class LobsterGenerator : public BaseGenerator { std::string GenTypeName(const Type &type) { auto bits = NumToString(SizeOf(type.base_type) * 8); if (IsInteger(type.base_type)) { - if (IsUnsigned(type.base_type)) return "uint" + bits; - else return "int" + bits; + if (IsUnsigned(type.base_type)) + return "uint" + bits; + else + return "int" + bits; } if (IsFloat(type.base_type)) return "float" + bits; if (IsString(type)) return "string"; @@ -120,16 +122,17 @@ class LobsterGenerator : public BaseGenerator { auto defval = field.IsOptional() ? "0" : field.value.constant; acc = "buf_.flatbuffers_field_" + GenTypeName(field.value.type) + "(pos_, " + offsets + ", " + defval + ")"; - if (IsBool(field.value.type.base_type)) - acc = "bool(" + acc + ")"; + if (IsBool(field.value.type.base_type)) acc = "bool(" + acc + ")"; } if (field.value.type.enum_def) acc = NormalizedName(*field.value.type.enum_def) + "(" + acc + ")"; if (field.IsOptional()) { acc += ", buf_.flatbuffers_field_present(pos_, " + offsets + ")"; - code += def + "() -> " + LobsterType(field.value.type) + ", bool:\n return " + acc + "\n"; + code += def + "() -> " + LobsterType(field.value.type) + + ", bool:\n return " + acc + "\n"; } else { - code += def + "() -> " + LobsterType(field.value.type) + ":\n return " + acc + "\n"; + code += def + "() -> " + LobsterType(field.value.type) + + ":\n return " + acc + "\n"; } return; } @@ -150,7 +153,8 @@ class LobsterGenerator : public BaseGenerator { } case BASE_TYPE_STRING: code += def + - "() -> string:\n return buf_.flatbuffers_field_string(pos_, " + + "() -> string:\n return " + "buf_.flatbuffers_field_string(pos_, " + offsets + ")\n"; break; case BASE_TYPE_VECTOR: { @@ -161,7 +165,9 @@ class LobsterGenerator : public BaseGenerator { if (!(vectortype.struct_def->fixed)) { start = "buf_.flatbuffers_indirect(" + start + ")"; } - code += def + "(i:int) -> " + NamespacedName(*field.value.type.struct_def) + ":\n return "; + code += def + "(i:int) -> " + + NamespacedName(*field.value.type.struct_def) + + ":\n return "; code += NamespacedName(*field.value.type.struct_def) + " { buf_, " + start + " }\n"; } else { @@ -169,7 +175,8 @@ class LobsterGenerator : public BaseGenerator { code += def + "(i:int) -> string:\n return "; code += "buf_.flatbuffers_string"; } else { - code += def + "(i:int) -> " + LobsterType(vectortype) + ":\n return "; + code += def + "(i:int) -> " + LobsterType(vectortype) + + ":\n return "; code += "buf_.read_" + GenTypeName(vectortype) + "_le"; } code += "(buf_.flatbuffers_field_vector(pos_, " + offsets + @@ -399,7 +406,7 @@ class LobsterGenerator : public BaseGenerator { } // namespace lobster static bool GenerateLobster(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { lobster::LobsterGenerator generator(parser, path, file_name); return generator.generate(); } @@ -414,9 +421,8 @@ class LobsterCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_php.cpp b/src/idl_gen_php.cpp index 6d1e3d153cf..1a6b9ec5c06 100644 --- a/src/idl_gen_php.cpp +++ b/src/idl_gen_php.cpp @@ -940,7 +940,7 @@ class PhpGenerator : public BaseGenerator { } // namespace php static bool GeneratePhp(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { php::PhpGenerator generator(parser, path, file_name); return generator.generate(); } @@ -955,9 +955,8 @@ class PhpCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 2d05f877100..1b11bbe22ee 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -74,7 +74,7 @@ static Namer::Config PythonDefaultConfig() { static const CommentConfig def_comment = { nullptr, "#", nullptr }; static const std::string Indent = " "; -} // namespace +} // namespace class PythonGenerator : public BaseGenerator { public: @@ -149,10 +149,11 @@ class PythonGenerator : public BaseGenerator { if (!parser_.opts.python_no_type_prefix_suffix) { // Add an alias with the old name code += Indent + "@classmethod\n"; - code += Indent + "def GetRootAs" + struct_type + "(cls, buf, offset=0):\n"; code += - Indent + Indent + - "\"\"\"This method is deprecated. Please switch to GetRootAs.\"\"\"\n"; + Indent + "def GetRootAs" + struct_type + "(cls, buf, offset=0):\n"; + code += Indent + Indent + + "\"\"\"This method is deprecated. Please switch to " + "GetRootAs.\"\"\"\n"; code += Indent + Indent + "return cls.GetRootAs(buf, offset)\n"; } } @@ -179,16 +180,15 @@ class PythonGenerator : public BaseGenerator { GenReceiver(struct_def, code_ptr); code += namer_.Method(field) + "Length(self)"; - if (parser_.opts.python_typing) { - code += " -> int"; - } + if (parser_.opts.python_typing) { code += " -> int"; } code += ":"; - if(!IsArray(field.value.type)){ - code += OffsetPrefix(field,false); + if (!IsArray(field.value.type)) { + code += OffsetPrefix(field, false); code += GenIndents(3) + "return self._tab.VectorLen(o)"; code += GenIndents(2) + "return 0\n\n"; - }else{ - code += GenIndents(2) + "return "+NumToString(field.value.type.fixed_length)+"\n\n"; + } else { + code += GenIndents(2) + "return " + + NumToString(field.value.type.fixed_length) + "\n\n"; } } @@ -199,17 +199,15 @@ class PythonGenerator : public BaseGenerator { GenReceiver(struct_def, code_ptr); code += namer_.Method(field) + "IsNone(self)"; - if (parser_.opts.python_typing) { - code += " -> bool"; - } + if (parser_.opts.python_typing) { code += " -> bool"; } code += ":"; - if(!IsArray(field.value.type)){ + if (!IsArray(field.value.type)) { code += GenIndents(2) + "o = flatbuffers.number_types.UOffsetTFlags.py_type" + "(self._tab.Offset(" + NumToString(field.value.offset) + "))"; code += GenIndents(2) + "return o == 0"; } else { - //assume that we always have an array as memory is preassigned + // assume that we always have an array as memory is preassigned code += GenIndents(2) + "return False"; } code += "\n\n"; @@ -290,7 +288,8 @@ class PythonGenerator : public BaseGenerator { code += "(self, i):"; } - if (parser_.opts.include_dependence_headers && !parser_.opts.python_typing) { + if (parser_.opts.include_dependence_headers && + !parser_.opts.python_typing) { code += GenIndents(2); code += "from " + import_entry.first + " import " + import_entry.second + "\n"; @@ -317,8 +316,9 @@ class PythonGenerator : public BaseGenerator { code += NumToString(field.value.offset) + " + i * "; code += NumToString(InlineSize(field.value.type.VectorType())); code += ")) for i in range("; - code += "self."+namer_.Method(field)+"Length()" + ")]"; - code += GenIndents(2) +"elif j >= 0 and j < self."+namer_.Method(field)+"Length():"; + code += "self." + namer_.Method(field) + "Length()" + ")]"; + code += GenIndents(2) + "elif j >= 0 and j < self." + namer_.Method(field) + + "Length():"; code += GenIndents(3) + "return " + GenGetter(field.value.type); code += "self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type("; code += NumToString(field.value.offset) + " + j * "; @@ -355,7 +355,8 @@ class PythonGenerator : public BaseGenerator { code += "x = self._tab.Indirect(o + self._tab.Pos)\n"; } - if (parser_.opts.include_dependence_headers && !parser_.opts.python_typing) { + if (parser_.opts.include_dependence_headers && + !parser_.opts.python_typing) { code += Indent + Indent + Indent; code += "from " + import_entry.first + " import " + import_entry.second + "\n"; @@ -464,7 +465,8 @@ class PythonGenerator : public BaseGenerator { if (!(vectortype.struct_def->fixed)) { code += Indent + Indent + Indent + "x = self._tab.Indirect(x)\n"; } - if (parser_.opts.include_dependence_headers && !parser_.opts.python_typing) { + if (parser_.opts.include_dependence_headers && + !parser_.opts.python_typing) { code += Indent + Indent + Indent; code += "from " + import_entry.first + " import " + import_entry.second + "\n"; @@ -519,7 +521,7 @@ class PythonGenerator : public BaseGenerator { GenReceiver(struct_def, code_ptr); code += namer_.Method(field) + "AsNumpy(self):"; - if(!IsArray(field.value.type)){ + if (!IsArray(field.value.type)) { code += OffsetPrefix(field, false); code += GenIndents(3); @@ -533,11 +535,13 @@ class PythonGenerator : public BaseGenerator { } else { code += GenIndents(2) + "return 0\n"; } - }else{ + } else { code += GenIndents(2) + "return "; code += "self._tab.GetArrayAsNumpy(flatbuffers.number_types."; code += namer_.Method(GenTypeGet(field.value.type.VectorType())); - code += "Flags, self._tab.Pos + "+NumToString(field.value.offset)+", "+NumToString("self."+namer_.Method(field)+"Length()")+")\n"; + code += "Flags, self._tab.Pos + " + NumToString(field.value.offset) + + ", " + NumToString("self." + namer_.Method(field) + "Length()") + + ")\n"; } code += "\n"; } @@ -564,9 +568,7 @@ class PythonGenerator : public BaseGenerator { const std::string unqualified_name = nested->constant; std::string qualified_name = NestedFlatbufferType(unqualified_name); - if (qualified_name.empty()) { - qualified_name = nested->constant; - } + if (qualified_name.empty()) { qualified_name = nested->constant; } const ImportMapEntry import_entry = { "." + qualified_name, unqualified_name }; @@ -704,7 +706,9 @@ class PythonGenerator : public BaseGenerator { const auto struct_type = namer_.Type(struct_def); // Generate method with struct name. - const auto name = parser_.opts.python_no_type_prefix_suffix ? "Start" : struct_type + "Start"; + const auto name = parser_.opts.python_no_type_prefix_suffix + ? "Start" + : struct_type + "Start"; code += "def " + name; if (parser_.opts.python_typing) { @@ -736,12 +740,14 @@ class PythonGenerator : public BaseGenerator { const std::string field_method = namer_.Method(field); const std::string field_ty = GenFieldTy(field); - const auto name = parser_.opts.python_no_type_prefix_suffix ? "Add" + field_method : namer_.Type(struct_def) + "Add" + field_method; + const auto name = parser_.opts.python_no_type_prefix_suffix + ? "Add" + field_method + : namer_.Type(struct_def) + "Add" + field_method; // Generate method with struct name. code += "def " + name; if (parser_.opts.python_typing) { - code += "(builder: flatbuffers.Builder, " + field_var + ": " + field_ty; + code += "(builder: flatbuffers.Builder, " + field_var + ": " + field_ty; } else { code += "(builder, " + field_var; } @@ -767,9 +773,9 @@ class PythonGenerator : public BaseGenerator { if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. - code += "def Add" + field_method + "(builder: flatbuffers.Builder, " + field_var + ": " + field_ty + "):\n"; - code += - Indent + namer_.Type(struct_def) + "Add" + field_method; + code += "def Add" + field_method + "(builder: flatbuffers.Builder, " + + field_var + ": " + field_ty + "):\n"; + code += Indent + namer_.Type(struct_def) + "Add" + field_method; code += "(builder, "; code += field_var; code += ")\n\n"; @@ -784,7 +790,9 @@ class PythonGenerator : public BaseGenerator { const std::string field_method = namer_.Method(field); // Generate method with struct name. - const auto name = parser_.opts.python_no_type_prefix_suffix ? "Start" + field_method : struct_type + "Start" + field_method; + const auto name = parser_.opts.python_no_type_prefix_suffix + ? "Start" + field_method + : struct_type + "Start" + field_method; code += "def " + name; if (parser_.opts.python_typing) { code += "Vector(builder, numElems: int) -> int:\n"; @@ -802,7 +810,8 @@ class PythonGenerator : public BaseGenerator { if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. - code += "def Start" + field_method + "Vector(builder, numElems: int) -> int:\n"; + code += "def Start" + field_method + + "Vector(builder, numElems: int) -> int:\n"; code += Indent + "return " + struct_type + "Start"; code += field_method + "Vector(builder, numElems)\n\n"; } @@ -849,7 +858,9 @@ class PythonGenerator : public BaseGenerator { std::string *code_ptr) const { auto &code = *code_ptr; - const auto name = parser_.opts.python_no_type_prefix_suffix ? "End" : namer_.Type(struct_def) + "End"; + const auto name = parser_.opts.python_no_type_prefix_suffix + ? "End" + : namer_.Type(struct_def) + "End"; // Generate method with struct name. if (parser_.opts.python_typing) { code += "def " + name + "(builder: flatbuffers.Builder) -> int:\n"; @@ -921,7 +932,9 @@ class PythonGenerator : public BaseGenerator { } break; } - case BASE_TYPE_UNION: GetUnionField(struct_def, field, code_ptr, imports); break; + case BASE_TYPE_UNION: + GetUnionField(struct_def, field, code_ptr, imports); + break; default: FLATBUFFERS_ASSERT(0); } } @@ -1255,14 +1268,15 @@ class PythonGenerator : public BaseGenerator { } void InitializeFromPackedBuf(const StructDef &struct_def, - std::string *code_ptr) const { + std::string *code_ptr) const { auto &code = *code_ptr; const auto struct_var = namer_.Variable(struct_def); const auto struct_type = namer_.Type(struct_def); code += GenIndents(1) + "@classmethod"; code += GenIndents(1) + "def InitFromPackedBuf(cls, buf, pos=0):"; - code += GenIndents(2) + "n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)"; + code += GenIndents(2) + + "n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, pos)"; code += GenIndents(2) + "return cls.InitFromBuf(buf, pos+n)"; code += "\n"; } @@ -1281,20 +1295,21 @@ class PythonGenerator : public BaseGenerator { code += "\n"; } - void GenCompareOperator(const StructDef &struct_def, + void GenCompareOperator(const StructDef &struct_def, std::string *code_ptr) const { auto &code = *code_ptr; code += GenIndents(1) + "def __eq__(self, other):"; code += GenIndents(2) + "return type(self) == type(other)"; for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - auto &field = **it; - if (field.deprecated) continue; + it != struct_def.fields.vec.end(); ++it) { + auto &field = **it; + if (field.deprecated) continue; - // Wrties the comparison statement for this field. - const auto field_field = namer_.Field(field); - code += " and \\" + GenIndents(3) + "self." + field_field + " == " + "other." + field_field; - } + // Wrties the comparison statement for this field. + const auto field_field = namer_.Field(field); + code += " and \\" + GenIndents(3) + "self." + field_field + + " == " + "other." + field_field; + } code += "\n"; } @@ -1317,8 +1332,9 @@ class PythonGenerator : public BaseGenerator { code += field_type + "()"; } code += ") is not None:"; - code += GenIndents(3) + "self." + field_field + " = " + namer_.ObjectType(field_type) + - + ".InitFromObj(" + struct_var + "." + field_method + "("; + code += GenIndents(3) + "self." + field_field + " = " + + namer_.ObjectType(field_type) + +".InitFromObj(" + struct_var + + "." + field_method + "("; // A struct's accessor requires a struct buf instance. if (struct_def.fixed && field.value.type.base_type == BASE_TYPE_STRUCT) { code += field_type + "()"; @@ -1368,8 +1384,9 @@ class PythonGenerator : public BaseGenerator { "(i) is None:"; code += GenIndents(5) + "self." + field_field + ".append(None)"; code += GenIndents(4) + "else:"; - code += GenIndents(5) + one_instance + " = " + namer_.ObjectType(field_type) + - ".InitFromObj(" + struct_var + "." + field_method + "(i))"; + code += GenIndents(5) + one_instance + " = " + + namer_.ObjectType(field_type) + ".InitFromObj(" + struct_var + "." + + field_method + "(i))"; code += GenIndents(5) + "self." + field_field + ".append(" + one_instance + ")"; } @@ -1399,8 +1416,9 @@ class PythonGenerator : public BaseGenerator { "(i) is None:"; code += GenIndents(5) + "self." + field_field + ".append(None)"; code += GenIndents(4) + "else:"; - code += GenIndents(5) + one_instance + " = " + namer_.ObjectType(field_type) + - ".InitFromObj(" + struct_var + "." + field_method + "(i))"; + code += GenIndents(5) + one_instance + " = " + + namer_.ObjectType(field_type) + ".InitFromObj(" + struct_var + "." + + field_method + "(i))"; code += GenIndents(5) + "self." + field_field + ".append(" + one_instance + ")"; } @@ -1780,9 +1798,7 @@ class PythonGenerator : public BaseGenerator { InitializeFromObjForObject(struct_def, &code); - if (parser_.opts.gen_compare) { - GenCompareOperator(struct_def, &code); - } + if (parser_.opts.gen_compare) { GenCompareOperator(struct_def, &code); } GenUnPack(struct_def, &code); @@ -1891,17 +1907,11 @@ class PythonGenerator : public BaseGenerator { std::string GenFieldTy(const FieldDef &field) const { if (IsScalar(field.value.type.base_type) || IsArray(field.value.type)) { const std::string ty = GenTypeBasic(field.value.type); - if (ty.find("int") != std::string::npos) { - return "int"; - } + if (ty.find("int") != std::string::npos) { return "int"; } - if (ty.find("float") != std::string::npos) { - return "float"; - } + if (ty.find("float") != std::string::npos) { return "float"; } - if (ty == "bool") { - return "bool"; - } + if (ty == "bool") { return "bool"; } return "Any"; } else { @@ -2052,13 +2062,9 @@ class PythonGenerator : public BaseGenerator { } if (parser_.opts.one_file) { - if (!declcode.empty()) { - *one_file_code += declcode + "\n\n"; - } + if (!declcode.empty()) { *one_file_code += declcode + "\n\n"; } - for (auto import_str: imports) { - one_file_imports.insert(import_str); - } + for (auto import_str : imports) { one_file_imports.insert(import_str); } } else { const std::string mod = namer_.File(struct_def, SkipFile::SuffixAndExtension); @@ -2136,7 +2142,7 @@ class PythonGenerator : public BaseGenerator { } // namespace python static bool GeneratePython(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { python::PythonGenerator generator(parser, path, file_name); return generator.generate(); } @@ -2151,9 +2157,8 @@ class PythonCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index f04e2361a44..95fa39bdd6b 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -277,10 +277,10 @@ static bool IsBitFlagsEnum(const EnumDef &enum_def) { static bool IsOptionalToBuilder(const FieldDef &field) { return field.IsOptional() || !IsScalar(field.value.type.base_type); } -} // namespace +} // namespace static bool GenerateRustModuleRootFile(const Parser &parser, - const std::string &output_dir) { + const std::string &output_dir) { if (!parser.opts.rust_module_root_file) { // Don't generate a root file when generating one file. This isn't an error // so return true. @@ -708,7 +708,7 @@ class RustGenerator : public BaseGenerator { // and an enum array of values void GenEnum(const EnumDef &enum_def) { const bool is_private = parser_.opts.no_leak_private_annotations && - (enum_def.attributes.Lookup("private") != nullptr); + (enum_def.attributes.Lookup("private") != nullptr); code_.SetValue("ACCESS_TYPE", is_private ? "pub(crate)" : "pub"); code_.SetValue("ENUM_TY", namer_.Type(enum_def)); code_.SetValue("BASE_TYPE", GetEnumTypeForDecl(enum_def.underlying_type)); @@ -842,15 +842,21 @@ class RustGenerator : public BaseGenerator { code_ += " type Inner = Self;"; code_ += " #[inline]"; code_ += " unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {"; - code_ += " let b = flatbuffers::read_scalar_at::<{{BASE_TYPE}}>(buf, loc);"; + code_ += + " let b = flatbuffers::read_scalar_at::<{{BASE_TYPE}}>(buf, loc);"; if (IsBitFlagsEnum(enum_def)) { // Safety: - // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size. - // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0 + // This is safe because we know bitflags is implemented with a repr + // transparent uint of the correct size. from_bits_unchecked will be + // replaced by an equivalent but safe from_bits_retain in bitflags 2.0 // https://github.com/bitflags/bitflags/issues/262 code_ += " // Safety:"; - code_ += " // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size."; - code_ += " // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0"; + code_ += + " // This is safe because we know bitflags is implemented with a " + "repr transparent uint of the correct size."; + code_ += + " // from_bits_unchecked will be replaced by an equivalent but " + "safe from_bits_retain in bitflags 2.0"; code_ += " // https://github.com/bitflags/bitflags/issues/262"; code_ += " Self::from_bits_unchecked(b)"; } else { @@ -863,7 +869,9 @@ class RustGenerator : public BaseGenerator { code_ += " type Output = {{ENUM_TY}};"; code_ += " #[inline]"; code_ += " unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {"; - code_ += " flatbuffers::emplace_scalar::<{{BASE_TYPE}}>(dst, {{INTO_BASE}});"; + code_ += + " flatbuffers::emplace_scalar::<{{BASE_TYPE}}>(dst, " + "{{INTO_BASE}});"; code_ += " }"; code_ += "}"; code_ += ""; @@ -879,12 +887,17 @@ class RustGenerator : public BaseGenerator { code_ += " let b = {{BASE_TYPE}}::from_le(v);"; if (IsBitFlagsEnum(enum_def)) { // Safety: - // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size. - // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0 + // This is safe because we know bitflags is implemented with a repr + // transparent uint of the correct size. from_bits_unchecked will be + // replaced by an equivalent but safe from_bits_retain in bitflags 2.0 // https://github.com/bitflags/bitflags/issues/262 code_ += " // Safety:"; - code_ += " // This is safe because we know bitflags is implemented with a repr transparent uint of the correct size."; - code_ += " // from_bits_unchecked will be replaced by an equivalent but safe from_bits_retain in bitflags 2.0"; + code_ += + " // This is safe because we know bitflags is implemented with a " + "repr transparent uint of the correct size."; + code_ += + " // from_bits_unchecked will be replaced by an equivalent but " + "safe from_bits_retain in bitflags 2.0"; code_ += " // https://github.com/bitflags/bitflags/issues/262"; code_ += " unsafe { Self::from_bits_unchecked(b) }"; } else { @@ -1458,7 +1471,8 @@ class RustGenerator : public BaseGenerator { case ftVectorOfBool: case ftVectorOfFloat: { const auto typname = GetTypeBasic(type.VectorType()); - return WrapOption("flatbuffers::Vector<" + lifetime + ", " + typname + ">"); + return WrapOption("flatbuffers::Vector<" + lifetime + ", " + typname + + ">"); } case ftVectorOfEnumKey: { const auto typname = WrapInNameSpace(*type.enum_def); @@ -1467,7 +1481,8 @@ class RustGenerator : public BaseGenerator { } case ftVectorOfStruct: { const auto typname = WrapInNameSpace(*type.struct_def); - return WrapOption("flatbuffers::Vector<" + lifetime + ", " + typname + ">"); + return WrapOption("flatbuffers::Vector<" + lifetime + ", " + typname + + ">"); } case ftVectorOfTable: { const auto typname = WrapInNameSpace(*type.struct_def); @@ -1585,8 +1600,9 @@ class RustGenerator : public BaseGenerator { : "None"; const std::string unwrap = field.IsOptional() ? "" : ".unwrap()"; - return "unsafe { self._tab.get::<" + typname + ">({{STRUCT_TY}}::" + vt_offset + - ", " + default_value + ")" + unwrap + "}"; + return "unsafe { self._tab.get::<" + typname + + ">({{STRUCT_TY}}::" + vt_offset + ", " + default_value + ")" + + unwrap + "}"; } // Generates a fully-qualified name getter for use with --gen-name-strings @@ -1646,8 +1662,8 @@ class RustGenerator : public BaseGenerator { // Generate an accessor struct, builder struct, and create function for a // table. void GenTable(const StructDef &struct_def) { - - const bool is_private = parser_.opts.no_leak_private_annotations && + const bool is_private = + parser_.opts.no_leak_private_annotations && (struct_def.attributes.Lookup("private") != nullptr); code_.SetValue("ACCESS_TYPE", is_private ? "pub(crate)" : "pub"); code_.SetValue("STRUCT_TY", namer_.Type(struct_def)); @@ -1933,13 +1949,17 @@ class RustGenerator : public BaseGenerator { code_ += " // Safety:"; code_ += " // Created from a valid Table for this object"; code_ += " // Which contains a valid union in this slot"; - code_ += " Some(unsafe { {{U_ELEMENT_TABLE_TYPE}}::init_from_table(u) })"; + code_ += + " Some(unsafe { " + "{{U_ELEMENT_TABLE_TYPE}}::init_from_table(u) })"; } else { - code_ +=" self.{{FIELD}}().map(|t| {"; + code_ += " self.{{FIELD}}().map(|t| {"; code_ += " // Safety:"; code_ += " // Created from a valid Table for this object"; code_ += " // Which contains a valid union in this slot"; - code_ += " unsafe { {{U_ELEMENT_TABLE_TYPE}}::init_from_table(t) }"; + code_ += + " unsafe { {{U_ELEMENT_TABLE_TYPE}}::init_from_table(t) " + "}"; code_ += " })"; } code_ += " } else {"; @@ -2264,7 +2284,8 @@ class RustGenerator : public BaseGenerator { case ftUnionValue: { code_.SetValue("ENUM_METHOD", namer_.Method(*field.value.type.enum_def)); - code_.SetValue("DISCRIMINANT", namer_.LegacyRustUnionTypeMethod(field)); + code_.SetValue("DISCRIMINANT", + namer_.LegacyRustUnionTypeMethod(field)); code_ += " let {{DISCRIMINANT}} = " "self.{{FIELD}}.{{ENUM_METHOD}}_type();"; @@ -2312,10 +2333,10 @@ class RustGenerator : public BaseGenerator { // TODO(cneo): create_vector* should be more generic to avoid // allocations. - MapNativeTableField( - field, - "let w: Vec<_> = x.iter().map(|s| _fbb.create_string(s)).collect();" - "_fbb.create_vector(&w)"); + MapNativeTableField(field, + "let w: Vec<_> = x.iter().map(|s| " + "_fbb.create_string(s)).collect();" + "_fbb.create_vector(&w)"); return; } case ftVectorOfTable: { @@ -2601,7 +2622,8 @@ class RustGenerator : public BaseGenerator { } // Generate an accessor struct with constructor for a flatbuffers struct. void GenStruct(const StructDef &struct_def) { - const bool is_private = parser_.opts.no_leak_private_annotations && + const bool is_private = + parser_.opts.no_leak_private_annotations && (struct_def.attributes.Lookup("private") != nullptr); code_.SetValue("ACCESS_TYPE", is_private ? "pub(crate)" : "pub"); // Generates manual padding and alignment. @@ -2665,7 +2687,9 @@ class RustGenerator : public BaseGenerator { code_ += " type Output = {{STRUCT_TY}};"; code_ += " #[inline]"; code_ += " unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {"; - code_ += " let src = ::core::slice::from_raw_parts(self as *const {{STRUCT_TY}} as *const u8, Self::size());"; + code_ += + " let src = ::core::slice::from_raw_parts(self as *const " + "{{STRUCT_TY}} as *const u8, Self::size());"; code_ += " dst.copy_from_slice(src);"; code_ += " }"; code_ += "}"; @@ -2759,7 +2783,9 @@ class RustGenerator : public BaseGenerator { code_ += " // Safety:"; code_ += " // Created from a valid Table for this object"; code_ += " // Which contains a valid array in this slot"; - code_ += " unsafe { flatbuffers::Array::follow(&self.0, {{FIELD_OFFSET}}) }"; + code_ += + " unsafe { flatbuffers::Array::follow(&self.0, {{FIELD_OFFSET}}) " + "}"; } else { code_ += "pub fn {{FIELD}}(&self) -> {{FIELD_TYPE}} {"; code_ += @@ -2772,7 +2798,9 @@ class RustGenerator : public BaseGenerator { code_ += " core::ptr::copy_nonoverlapping("; code_ += " self.0[{{FIELD_OFFSET}}..].as_ptr(),"; code_ += " mem.as_mut_ptr() as *mut u8,"; - code_ += " core::mem::size_of::<<{{FIELD_TYPE}} as EndianScalar>::Scalar>(),"; + code_ += + " core::mem::size_of::<<{{FIELD_TYPE}} as " + "EndianScalar>::Scalar>(),"; code_ += " );"; code_ += " mem.assume_init()"; code_ += " })"; @@ -2827,7 +2855,9 @@ class RustGenerator : public BaseGenerator { code_ += " core::ptr::copy_nonoverlapping("; code_ += " &x_le as *const _ as *const u8,"; code_ += " self.0[{{FIELD_OFFSET}}..].as_mut_ptr(),"; - code_ += " core::mem::size_of::<<{{FIELD_TYPE}} as EndianScalar>::Scalar>(),"; + code_ += + " core::mem::size_of::<<{{FIELD_TYPE}} as " + "EndianScalar>::Scalar>(),"; code_ += " );"; code_ += " }"; } @@ -2990,13 +3020,13 @@ class RustGenerator : public BaseGenerator { } // namespace rust static bool GenerateRust(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { rust::RustGenerator generator(parser, path, file_name); return generator.generate(); } static std::string RustMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { std::string filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); rust::RustGenerator generator(parser, path, file_name); @@ -3020,9 +3050,8 @@ class RustCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index d180c8d5f6f..0bd9a227b63 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -148,7 +148,7 @@ static std::string GenArrayMainBody(const std::string &optional) { optional + " { "; } -} // namespace +} // namespace class SwiftGenerator : public BaseGenerator { private: @@ -261,8 +261,7 @@ class SwiftGenerator : public BaseGenerator { code_ += "private var _{{FIELDVAR}}: " + valueType; const auto accessing_value = IsEnum(field.value.type) ? ".value" : ""; const auto base_value = - IsStruct(field.value.type) ? (type + "()") - : SwiftConstant(field); + IsStruct(field.value.type) ? (type + "()") : SwiftConstant(field); main_constructor.push_back("_" + field_var + " = " + field_var + accessing_value); @@ -720,8 +719,7 @@ class SwiftGenerator : public BaseGenerator { if (IsBool(field.value.type.base_type)) { std::string default_value = - field.IsOptional() ? "nil" - : SwiftConstant(field); + field.IsOptional() ? "nil" : SwiftConstant(field); code_.SetValue("CONSTANT", default_value); code_.SetValue("VALUETYPE", "Bool"); code_ += GenReaderMainBody(optional) + "\\"; @@ -984,8 +982,9 @@ class SwiftGenerator : public BaseGenerator { } else if (IsEnum(type) && !field.IsOptional()) { code_.SetValue("CONSTANT", GenEnumDefaultValue(field)); code_ += "if {{FIELDVAR}} != {{CONSTANT}} {"; - } else if (IsFloat(type.base_type) && StringIsFlatbufferNan(field.value.constant)) { - code_ += "if !{{FIELDVAR}}.isNaN {"; + } else if (IsFloat(type.base_type) && + StringIsFlatbufferNan(field.value.constant)) { + code_ += "if !{{FIELDVAR}}.isNaN {"; } else if (IsScalar(type.base_type) && !IsEnum(type) && !IsBool(type.base_type) && !field.IsOptional()) { code_ += "if {{FIELDVAR}} != {{CONSTANT}} {"; @@ -1158,8 +1157,9 @@ class SwiftGenerator : public BaseGenerator { void GenEnum(const EnumDef &enum_def) { if (enum_def.generated) return; - const bool is_private_access = parser_.opts.swift_implementation_only || - enum_def.attributes.Lookup("private") != nullptr; + const bool is_private_access = + parser_.opts.swift_implementation_only || + enum_def.attributes.Lookup("private") != nullptr; code_.SetValue("ENUM_TYPE", enum_def.is_union ? "UnionEnum" : "Enum, Verifiable"); code_.SetValue("ACCESS_TYPE", is_private_access ? "internal" : "public"); @@ -1579,7 +1579,8 @@ class SwiftGenerator : public BaseGenerator { if (IsBool(field.value.type.base_type)) { code_ += "{{ACCESS_TYPE}} var {{FIELDVAR}}: Bool" + nullable; if (!field.IsOptional()) - base_constructor.push_back(field_var + " = " + SwiftConstant(field)); + base_constructor.push_back(field_var + " = " + + SwiftConstant(field)); } } } @@ -1827,15 +1828,17 @@ class SwiftGenerator : public BaseGenerator { } } - std::string SwiftConstant(const FieldDef& field) { + std::string SwiftConstant(const FieldDef &field) { const auto default_value = - StringIsFlatbufferNan(field.value.constant) ? ".nan" : - StringIsFlatbufferPositiveInfinity(field.value.constant) ? ".infinity" : - StringIsFlatbufferNegativeInfinity(field.value.constant) ? "-.infinity" : - IsBool(field.value.type.base_type) ? ("0" == field.value.constant ? "false" : "true") : - field.value.constant; + StringIsFlatbufferNan(field.value.constant) ? ".nan" + : StringIsFlatbufferPositiveInfinity(field.value.constant) ? ".infinity" + : StringIsFlatbufferNegativeInfinity(field.value.constant) + ? "-.infinity" + : IsBool(field.value.type.base_type) + ? ("0" == field.value.constant ? "false" : "true") + : field.value.constant; return default_value; - } + } std::string GenEnumConstructor(const std::string &at) { return "{{VALUETYPE}}(rawValue: " + GenReader("BASEVALUE", at) + ") "; @@ -1901,7 +1904,7 @@ class SwiftGenerator : public BaseGenerator { } // namespace swift static bool GenerateSwift(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { swift::SwiftGenerator generator(parser, path, file_name); return generator.generate(); } @@ -1916,9 +1919,8 @@ class SwiftCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index 681e6e1a873..c1d69f2338c 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -454,9 +454,8 @@ class TextCodeGenerator : public CodeGenerator { // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index 03165036949..a21b21bd225 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -477,10 +477,9 @@ class TsGenerator : public BaseGenerator { EnumVal *val = value.type.enum_def->FindByValue(value.constant); if (val == nullptr) val = const_cast(value.type.enum_def->MinValue()); - return AddImport(imports, *value.type.enum_def, - *value.type.enum_def) - .name + - "." + namer_.Variant(*val); + return AddImport(imports, *value.type.enum_def, *value.type.enum_def) + .name + + "." + namer_.Variant(*val); } } } @@ -2162,13 +2161,13 @@ class TsGenerator : public BaseGenerator { } // namespace ts static bool GenerateTS(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { ts::TsGenerator generator(parser, path, file_name); return generator.generate(); } static std::string TSMakeRule(const Parser &parser, const std::string &path, - const std::string &file_name) { + const std::string &file_name) { std::string filebase = flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); ts::TsGenerator generator(parser, path, file_name); @@ -2192,9 +2191,8 @@ class TsCodeGenerator : public CodeGenerator { return Status::OK; } - Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void)buffer; - (void)length; + Status GenerateCode(const uint8_t *, int64_t, + const CodeGenOptions &) override { return Status::NOT_IMPLEMENTED; } From 85f71321fd83da1c0a09fdb26c8e50e7d86dfbb2 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 10 May 2023 13:56:13 -0700 Subject: [PATCH 06/35] Update README.md Added Quick State to the main readme file --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 1fb2fe0c669..7396b424673 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,47 @@ **FlatBuffers** is a cross platform serialization library architected for maximum memory efficiency. It allows you to directly access serialized data without parsing/unpacking it first, while still having great forwards/backwards compatibility. +## Quick Start + +1. Build the compiler for flatbuffers (`flatc`) + + Use `cmake` to create the build files for your platform and then perform the compliation (Linux example). + + ``` + cmake -G "Unix Makefiles" + make -j + ``` + +2. Define your flatbuffer schema (`.fbs`) + + Write the [schema](https://flatbuffers.dev/flatbuffers_guide_writing_schema.html) to define the data you want to serialize. See [monster.fbs](https://github.com/google/flatbuffers/blob/master/samples/monster.fbs) for an example. + +3. Generate code for your language(s) + + Use the `flatc` compiler to take your schema and generate language-specific code: + + ``` + ./flatc --cpp --rust monster.fbs + ``` + + Which generates `monster_generated.h` and `monster_generated.rs` files. + +4. Serialize data + + Use the generated code, as well as the `FlatBufferBuilder` to construct your serialized buffer. ([`C++` example](https://github.com/google/flatbuffers/blob/master/samples/sample_binary.cpp#L24-L56)) + +5. Transmit/store/save Buffer + + Use your serialized buffer however you want. Send it to someone, save it for later, etc... + +6. Read the data + + Use the generated accessors to read the data from the serialized buffer. + + It doesn't need to be the same language/schema version, FlatBuffers ensures the data is readable across languages and schema versions. See the [`Rust` example](https://github.com/google/flatbuffers/blob/master/samples/sample_binary.rs#L92-L106) reading the data written by `C++`. + +## Documentation + **Go to our [landing page][] to browse our documentation.** ## Supported operating systems From b5957975c5a823ad28152de089656faec41022fa Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 10 May 2023 14:16:31 -0700 Subject: [PATCH 07/35] rename __suppress_ubsan to FLATBUFFERS_SUPPRESS_UBSAN --- include/flatbuffers/base.h | 18 +++++++++--------- include/flatbuffers/util.h | 2 +- include/flatbuffers/verifier.h | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index ac8db356a49..d457d59fb93 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -279,14 +279,14 @@ namespace flatbuffers { #endif // !FLATBUFFERS_LOCALE_INDEPENDENT // Suppress Undefined Behavior Sanitizer (recoverable only). Usage: -// - __suppress_ubsan__("undefined") -// - __suppress_ubsan__("signed-integer-overflow") +// - FLATBUFFERS_SUPPRESS_UBSAN("undefined") +// - FLATBUFFERS_SUPPRESS_UBSAN("signed-integer-overflow") #if defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >=7)) - #define __suppress_ubsan__(type) __attribute__((no_sanitize(type))) + #define FLATBUFFERS_SUPPRESS_UBSAN(type) __attribute__((no_sanitize(type))) #elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 409) - #define __suppress_ubsan__(type) __attribute__((no_sanitize_undefined)) + #define FLATBUFFERS_SUPPRESS_UBSAN(type) __attribute__((no_sanitize_undefined)) #else - #define __suppress_ubsan__(type) + #define FLATBUFFERS_SUPPRESS_UBSAN(type) #endif // This is constexpr function used for checking compile-time constants. @@ -422,7 +422,7 @@ template T EndianScalar(T t) { template // UBSAN: C++ aliasing type rules, see std::bit_cast<> for details. -__suppress_ubsan__("alignment") +FLATBUFFERS_SUPPRESS_UBSAN("alignment") T ReadScalar(const void *p) { return EndianScalar(*reinterpret_cast(p)); } @@ -436,13 +436,13 @@ T ReadScalar(const void *p) { template // UBSAN: C++ aliasing type rules, see std::bit_cast<> for details. -__suppress_ubsan__("alignment") +FLATBUFFERS_SUPPRESS_UBSAN("alignment") void WriteScalar(void *p, T t) { *reinterpret_cast(p) = EndianScalar(t); } template struct Offset; -template __suppress_ubsan__("alignment") void WriteScalar(void *p, Offset t) { +template FLATBUFFERS_SUPPRESS_UBSAN("alignment") void WriteScalar(void *p, Offset t) { *reinterpret_cast(p) = EndianScalar(t.o); } @@ -453,7 +453,7 @@ template __suppress_ubsan__("alignment") void WriteScalar(void *p, O // Computes how many bytes you'd have to pad to be able to write an // "scalar_size" scalar if the buffer had grown to "buf_size" (downwards in // memory). -__suppress_ubsan__("unsigned-integer-overflow") +FLATBUFFERS_SUPPRESS_UBSAN("unsigned-integer-overflow") inline size_t PaddingBytes(size_t buf_size, size_t scalar_size) { return ((~buf_size) + 1) & (scalar_size - 1); } diff --git a/include/flatbuffers/util.h b/include/flatbuffers/util.h index a6bcf34b68c..71afdc4d0b4 100644 --- a/include/flatbuffers/util.h +++ b/include/flatbuffers/util.h @@ -257,7 +257,7 @@ inline void strtoval_impl(double *val, const char *str, char **endptr) { } // UBSAN: double to float is safe if numeric_limits::is_iec559 is true. -__suppress_ubsan__("float-cast-overflow") +FLATBUFFERS_SUPPRESS_UBSAN("float-cast-overflow") inline void strtoval_impl(float *val, const char *str, char **endptr) { *val = __strtof_impl(str, endptr); } diff --git a/include/flatbuffers/verifier.h b/include/flatbuffers/verifier.h index ddd79446e22..c64737e4962 100644 --- a/include/flatbuffers/verifier.h +++ b/include/flatbuffers/verifier.h @@ -177,7 +177,7 @@ class Verifier FLATBUFFERS_FINAL_CLASS { return true; } - __suppress_ubsan__("unsigned-integer-overflow") bool VerifyTableStart( + FLATBUFFERS_SUPPRESS_UBSAN("unsigned-integer-overflow") bool VerifyTableStart( const uint8_t *const table) { // Check the vtable offset. const auto tableo = static_cast(table - buf_); From 82c67126062b11de15e6265eab6816daaefd4e22 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 10 May 2023 16:30:12 -0700 Subject: [PATCH 08/35] make loop variable final in dart --- dart/lib/flat_buffers.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dart/lib/flat_buffers.dart b/dart/lib/flat_buffers.dart index 071f3cc92f8..6f307872e10 100644 --- a/dart/lib/flat_buffers.dart +++ b/dart/lib/flat_buffers.dart @@ -654,7 +654,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setInt8AtTail(tail, value); tail -= _sizeofUint8; } From 0ce6957763e5e5f3cd0b421a473d252d2ba7ef35 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 10 May 2023 16:41:39 -0700 Subject: [PATCH 09/35] remove unneeed grpc include --- include/flatbuffers/grpc.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/flatbuffers/grpc.h b/include/flatbuffers/grpc.h index 5d15bc51c0b..7472c31d4a9 100644 --- a/include/flatbuffers/grpc.h +++ b/include/flatbuffers/grpc.h @@ -20,7 +20,6 @@ // Helper functionality to glue FlatBuffers and GRPC. #include "flatbuffers/flatbuffers.h" -#include "grpc/byte_buffer_reader.h" #include "grpcpp/support/byte_buffer.h" #include "grpcpp/support/slice.h" From c2bf8106389e3b1595a24fbac324ad02952c009b Mon Sep 17 00:00:00 2001 From: Philipp Schrader Date: Wed, 10 May 2023 21:35:58 -0700 Subject: [PATCH 10/35] Fix //tests/ts:bazel_repository_test (#7952) The test was not actually invoking the bazel that was downloaded with the `http_file` rule. I failed to add `executable = True` to the `http_file` call. This caused the test to ignore that bazel binary and went to the next one on the system. This patch fixes the issue by adding the missing attribute. Also, this patch changes the check in the test to make sure that the downloaded file is indeed executable. --- WORKSPACE | 1 + tests/ts/bazel_repository_test.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/WORKSPACE b/WORKSPACE index 9f70edd44cb..d7a8b2ca75f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -148,6 +148,7 @@ esbuild_register_toolchains( http_file( name = "bazel_linux_x86_64", downloaded_file_path = "bazel", + executable = True, sha256 = "e89747d63443e225b140d7d37ded952dacea73aaed896bca01ccd745827c6289", urls = [ "https://github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-linux-x86_64", diff --git a/tests/ts/bazel_repository_test.sh b/tests/ts/bazel_repository_test.sh index 5030809329f..94e115c747e 100755 --- a/tests/ts/bazel_repository_test.sh +++ b/tests/ts/bazel_repository_test.sh @@ -17,7 +17,7 @@ source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \ BAZEL_BIN="$(rlocation bazel_linux_x86_64/file/bazel)" readonly BAZEL_BIN -if [[ ! -e "${BAZEL_BIN}" ]]; then +if [[ ! -x "${BAZEL_BIN}" ]]; then echo "Failed to find the bazel binary." >&2 exit 1 fi From 9fc153a8f88890972015492b1529bdd057ba16b6 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 11 May 2023 09:34:50 -0700 Subject: [PATCH 11/35] remove large buffer creation in test to speed it up --- tests/64bit/offset64_test.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/64bit/offset64_test.cpp b/tests/64bit/offset64_test.cpp index 8e91fbea5b6..49f378726da 100644 --- a/tests/64bit/offset64_test.cpp +++ b/tests/64bit/offset64_test.cpp @@ -23,7 +23,8 @@ void Offset64Test() { FlatBufferBuilder64 builder; const size_t far_vector_size = 1LL << 2; - const size_t big_vector_size = 1LL << 31; + // Make a large number if wanting to test a real large buffer. + const size_t big_vector_size = 1LL << 2; { // First create the vectors that will be copied to the buffer. From 66e9d9823a348bfb8c7ad4d55e8419fbcb85463d Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 11 May 2023 09:39:54 -0700 Subject: [PATCH 12/35] fixed other occurenace of big buffer --- tests/64bit/offset64_test.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/64bit/offset64_test.cpp b/tests/64bit/offset64_test.cpp index 49f378726da..0d3f6e6c6eb 100644 --- a/tests/64bit/offset64_test.cpp +++ b/tests/64bit/offset64_test.cpp @@ -16,6 +16,7 @@ #include "test_64bit_generated.h" #include "test_assert.h" + namespace flatbuffers { namespace tests { @@ -62,9 +63,6 @@ void Offset64Test() { // Finish the buffer. builder.Finish(root_table_offset); - // Ensure the buffer is big. - TEST_ASSERT(builder.GetSize() > FLATBUFFERS_MAX_BUFFER_SIZE); - Verifier::Options options; // Allow the verifier to verify 64-bit buffers. options.max_size = FLATBUFFERS_MAX_64_BUFFER_SIZE; @@ -269,15 +267,12 @@ void Offset64Evolution() { FlatBufferBuilder64 builder; std::vector giant_data; - giant_data.resize(1LL << 31); + giant_data.resize(1LL << 3); giant_data[2] = 42; builder.Finish( v2::CreateRootTableDirect(builder, 1234, &data, &giant_data)); - // Ensure the buffer is bigger than the 32-bit size limit for V1. - TEST_ASSERT(builder.GetSize() > FLATBUFFERS_MAX_BUFFER_SIZE); - // Use each version to get a view at the root table. auto v1_root = v1::GetRootTable(builder.GetBufferPointer()); auto v2_root = v2::GetRootTable(builder.GetBufferPointer()); From 33212657ae25634edebd3c22a7a19e7e0d8ff3f9 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 11 May 2023 12:21:50 -0700 Subject: [PATCH 13/35] Change SizedPrefixed verifier to be <= provided size (#7957) * Change SizedPrefixed verifier to be <= provided size * add GetSizePrefixedBufferLength() --- include/flatbuffers/flatbuffers.h | 12 ++++++++++++ include/flatbuffers/verifier.h | 8 +++++--- tests/monster_test.cpp | 31 ++++++++++++++++++++++++++----- 3 files changed, 43 insertions(+), 8 deletions(-) diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h index 53e48d59045..4f797cbdb03 100644 --- a/include/flatbuffers/flatbuffers.h +++ b/include/flatbuffers/flatbuffers.h @@ -81,6 +81,18 @@ inline SizeT GetPrefixedSize(const uint8_t *buf) { return ReadScalar(buf); } +// Gets the total length of the buffer given a sized prefixed FlatBuffer. +// +// This includes the size of the prefix as well as the buffer: +// +// [size prefix][flatbuffer] +// |---------length--------| +template +inline SizeT GetSizePrefixedBufferLength(const uint8_t * const buf) { + return ReadScalar(buf) + sizeof(SizeT); +} + + // Base class for native objects (FlatBuffer data de-serialized into native // C++ data structures). // Contains no functionality, purely documentative. diff --git a/include/flatbuffers/verifier.h b/include/flatbuffers/verifier.h index c64737e4962..de1146be92e 100644 --- a/include/flatbuffers/verifier.h +++ b/include/flatbuffers/verifier.h @@ -177,8 +177,8 @@ class Verifier FLATBUFFERS_FINAL_CLASS { return true; } - FLATBUFFERS_SUPPRESS_UBSAN("unsigned-integer-overflow") bool VerifyTableStart( - const uint8_t *const table) { + FLATBUFFERS_SUPPRESS_UBSAN("unsigned-integer-overflow") + bool VerifyTableStart(const uint8_t *const table) { // Check the vtable offset. const auto tableo = static_cast(table - buf_); if (!Verify(tableo)) return false; @@ -246,7 +246,9 @@ class Verifier FLATBUFFERS_FINAL_CLASS { template bool VerifySizePrefixedBuffer(const char *const identifier) { return Verify(0U) && - Check(ReadScalar(buf_) == size_ - sizeof(SizeT)) && + // Ensure the prefixed size is within the bounds of the provided + // length. + Check(ReadScalar(buf_) + sizeof(SizeT) <= size_) && VerifyBufferFromStart(identifier, sizeof(SizeT)); } diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index 2ca3277a9be..d44f118ea21 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -3,7 +3,9 @@ #include #include +#include "flatbuffers/base.h" #include "flatbuffers/flatbuffer_builder.h" +#include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" #include "flatbuffers/registry.h" #include "flatbuffers/verifier.h" @@ -422,8 +424,8 @@ void MutateFlatBuffersTest(uint8_t *flatbuf, std::size_t length) { // Mutate structs. auto pos = monster->mutable_pos(); - auto & test3 = pos->mutable_test3(); // Struct inside a struct. - test3.mutate_a(50); // Struct fields never fail. + auto &test3 = pos->mutable_test3(); // Struct inside a struct. + test3.mutate_a(50); // Struct fields never fail. TEST_EQ(test3.a(), 50); test3.mutate_a(10); @@ -441,13 +443,12 @@ void MutateFlatBuffersTest(uint8_t *flatbuf, std::size_t length) { first->mutate_hp(1000); // Test for each loop over mutable entries - for (auto item: *tables) - { + for (auto item : *tables) { TEST_EQ(item->hp(), 1000); item->mutate_hp(0); TEST_EQ(item->hp(), 0); item->mutate_hp(1000); - break; // one iteration is enough, just testing compilation + break; // one iteration is enough, just testing compilation } // Mutate via LookupByKey @@ -579,11 +580,31 @@ void SizePrefixedTest() { flatbuffers::Verifier verifier(fbb.GetBufferPointer(), fbb.GetSize()); TEST_EQ(VerifySizePrefixedMonsterBuffer(verifier), true); + // The prefixed size doesn't include itself, so substract the size of the + // prefix + TEST_EQ(GetPrefixedSize(fbb.GetBufferPointer()), + fbb.GetSize() - sizeof(uoffset_t)); + + // Getting the buffer length does include the prefix size, so it should be the + // full lenght. + TEST_EQ(GetSizePrefixedBufferLength(fbb.GetBufferPointer()), fbb.GetSize()); + // Access it. auto m = GetSizePrefixedMonster(fbb.GetBufferPointer()); TEST_EQ(m->mana(), 200); TEST_EQ(m->hp(), 300); TEST_EQ_STR(m->name()->c_str(), "bob"); + + { + // Verify that passing a larger size is OK, but not a smaller + flatbuffers::Verifier verifier_larger(fbb.GetBufferPointer(), + fbb.GetSize() + 10); + TEST_EQ(VerifySizePrefixedMonsterBuffer(verifier_larger), true); + + flatbuffers::Verifier verifier_smaller(fbb.GetBufferPointer(), + fbb.GetSize() - 10); + TEST_EQ(VerifySizePrefixedMonsterBuffer(verifier_smaller), false); + } } void TestMonsterExtraFloats(const std::string &tests_data_path) { From e97ff95970f006a953c7804ce8d707fde2473a86 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 11 May 2023 11:27:26 -0700 Subject: [PATCH 14/35] Change SizedPrefixed verifier to be <= provided size --- tests/monster_test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index d44f118ea21..38a33577941 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -173,7 +173,7 @@ flatbuffers::DetachedBuffer CreateFlatBufferTest(std::string &buffer) { FinishMonsterBuffer(builder, mloc); - // clang-format off +// clang-format off #ifdef FLATBUFFERS_TEST_VERBOSE // print byte data for debugging: auto p = builder.GetBufferPointer(); @@ -198,7 +198,7 @@ void AccessFlatBufferTest(const uint8_t *flatbuf, size_t length, bool pooled) { verifier.SetFlexReuseTracker(&flex_reuse_tracker); TEST_EQ(VerifyMonsterBuffer(verifier), true); - // clang-format off +// clang-format off #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE std::vector test_buff; test_buff.resize(length * 2); From c2f764c22b0f9ad6b0bb1125519e7d8fc7c70608 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 11 May 2023 12:11:32 -0700 Subject: [PATCH 15/35] add GetSizePrefixedBufferLength() --- tests/monster_test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index 38a33577941..d44f118ea21 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -173,7 +173,7 @@ flatbuffers::DetachedBuffer CreateFlatBufferTest(std::string &buffer) { FinishMonsterBuffer(builder, mloc); -// clang-format off + // clang-format off #ifdef FLATBUFFERS_TEST_VERBOSE // print byte data for debugging: auto p = builder.GetBufferPointer(); @@ -198,7 +198,7 @@ void AccessFlatBufferTest(const uint8_t *flatbuf, size_t length, bool pooled) { verifier.SetFlexReuseTracker(&flex_reuse_tracker); TEST_EQ(VerifyMonsterBuffer(verifier), true); -// clang-format off + // clang-format off #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE std::vector test_buff; test_buff.resize(length * 2); From 86486a1735bc38f5629447251206934ef205f6e4 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 11 May 2023 12:23:49 -0700 Subject: [PATCH 16/35] run `scripts/clang-format-all.sh` --- include/flatbuffers/flatbuffers.h | 5 +-- include/flatbuffers/idl.h | 3 +- include/flatbuffers/registry.h | 4 +- include/flatbuffers/table.h | 2 +- include/flatbuffers/vector.h | 9 ++--- include/flatbuffers/vector_downward.h | 7 ++-- src/bfbs_gen_lua.cpp | 3 +- src/file_name_saving_file_manager.cpp | 4 +- src/idl_gen_text.cpp | 8 +++- src/idl_parser.cpp | 8 +++- src/reflection.cpp | 57 ++++++++++++++------------- src/util.cpp | 29 ++++++++------ tests/alignment_test.cpp | 4 +- tests/flexbuffers_test.cpp | 4 +- tests/fuzz_test.cpp | 6 +-- tests/json_test.cpp | 13 +++--- tests/key_field_test.cpp | 25 ++++++------ tests/optional_scalars_test.cpp | 11 +++--- tests/proto_test.cpp | 5 ++- tests/reflection_test.cpp | 6 ++- tests/test_builder.cpp | 5 +-- 21 files changed, 116 insertions(+), 102 deletions(-) diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h index 4f797cbdb03..bc828a31304 100644 --- a/include/flatbuffers/flatbuffers.h +++ b/include/flatbuffers/flatbuffers.h @@ -85,14 +85,13 @@ inline SizeT GetPrefixedSize(const uint8_t *buf) { // // This includes the size of the prefix as well as the buffer: // -// [size prefix][flatbuffer] +// [size prefix][flatbuffer] // |---------length--------| template -inline SizeT GetSizePrefixedBufferLength(const uint8_t * const buf) { +inline SizeT GetSizePrefixedBufferLength(const uint8_t *const buf) { return ReadScalar(buf) + sizeof(SizeT); } - // Base class for native objects (FlatBuffer data de-serialized into native // C++ data structures). // Contains no functionality, purely documentative. diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 18ee76e981a..2d7c8581fe8 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -1212,7 +1212,8 @@ class Parser : public ParserState { // strict_json adds "quotes" around field names if true. // If the flatbuffer cannot be encoded in JSON (e.g., it contains non-UTF-8 // byte arrays in String values), returns false. -extern const char *GenerateTextFromTable(const Parser &parser, const void *table, +extern const char *GenerateTextFromTable(const Parser &parser, + const void *table, const std::string &tablename, std::string *text); extern const char *GenerateText(const Parser &parser, const void *flatbuffer, diff --git a/include/flatbuffers/registry.h b/include/flatbuffers/registry.h index 80c385c36f5..ed3d922f2e6 100644 --- a/include/flatbuffers/registry.h +++ b/include/flatbuffers/registry.h @@ -54,8 +54,8 @@ class Registry { // Now we're ready to generate text. auto err = GenerateText(parser, flatbuf, dest); if (err) { - lasterror_ = "unable to generate text for FlatBuffer binary: " + - std::string(err); + lasterror_ = + "unable to generate text for FlatBuffer binary: " + std::string(err); return false; } return true; diff --git a/include/flatbuffers/table.h b/include/flatbuffers/table.h index b370ccb35bb..e92d8ae8e65 100644 --- a/include/flatbuffers/table.h +++ b/include/flatbuffers/table.h @@ -153,7 +153,7 @@ class Table { return verifier.Check(field_offset != 0) && verifier.VerifyOffset(data_, field_offset); } - + bool VerifyOffset64(const Verifier &verifier, voffset_t field) const { return VerifyOffset(verifier, field); } diff --git a/include/flatbuffers/vector.h b/include/flatbuffers/vector.h index 7d836362e8b..ae52b9382c2 100644 --- a/include/flatbuffers/vector.h +++ b/include/flatbuffers/vector.h @@ -147,12 +147,10 @@ struct VectorReverseIterator : public std::reverse_iterator { // Vector::data() assumes the vector elements start after the length field. template class Vector { public: - typedef VectorIterator::mutable_return_type, + typedef VectorIterator::mutable_return_type, uint8_t *, SizeT> iterator; - typedef VectorConstIterator::return_type, - SizeT> + typedef VectorConstIterator::return_type, SizeT> const_iterator; typedef VectorReverseIterator reverse_iterator; typedef VectorReverseIterator const_reverse_iterator; @@ -171,8 +169,7 @@ template class Vector { typedef SizeT size_type; typedef typename IndirectHelper::return_type return_type; - typedef typename IndirectHelper::mutable_return_type - mutable_return_type; + typedef typename IndirectHelper::mutable_return_type mutable_return_type; typedef return_type value_type; return_type Get(SizeT i) const { diff --git a/include/flatbuffers/vector_downward.h b/include/flatbuffers/vector_downward.h index fd491e7635b..2b5a92cf171 100644 --- a/include/flatbuffers/vector_downward.h +++ b/include/flatbuffers/vector_downward.h @@ -17,9 +17,8 @@ #ifndef FLATBUFFERS_VECTOR_DOWNWARD_H_ #define FLATBUFFERS_VECTOR_DOWNWARD_H_ -#include - #include +#include #include "flatbuffers/base.h" #include "flatbuffers/default_allocator.h" @@ -167,7 +166,9 @@ template class vector_downward { inline SizeT size() const { return size_; } // The size of the buffer part of the vector that is currently unused. - SizeT unused_buffer_size() const { return static_cast(cur_ - scratch_); } + SizeT unused_buffer_size() const { + return static_cast(cur_ - scratch_); + } // The size of the scratch part of the vector. SizeT scratch_size() const { return static_cast(scratch_ - buf_); } diff --git a/src/bfbs_gen_lua.cpp b/src/bfbs_gen_lua.cpp index b9883424a5b..185e859620a 100644 --- a/src/bfbs_gen_lua.cpp +++ b/src/bfbs_gen_lua.cpp @@ -656,7 +656,8 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { // TODO(derekbailey): figure out a save file without depending on util.h EnsureDirExists(path); - const std::string file_name = options_.output_path + path + "/" + namer_.File(name); + const std::string file_name = + options_.output_path + path + "/" + namer_.File(name); SaveFile(file_name.c_str(), code, false); } diff --git a/src/file_name_saving_file_manager.cpp b/src/file_name_saving_file_manager.cpp index fc4a4aa1ec7..b43c7b6eb09 100644 --- a/src/file_name_saving_file_manager.cpp +++ b/src/file_name_saving_file_manager.cpp @@ -37,8 +37,8 @@ class FileNameSavingFileManager : public FileManager { } bool Loadfile(const std::string &absolute_file_name, std::string *content) { - (void) absolute_file_name; - (void) content; + (void)absolute_file_name; + (void)content; return false; } diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index c1d69f2338c..17d518032f0 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -30,8 +30,12 @@ namespace flatbuffers { struct PrintScalarTag {}; struct PrintPointerTag {}; -template struct PrintTag { typedef PrintScalarTag type; }; -template<> struct PrintTag { typedef PrintPointerTag type; }; +template struct PrintTag { + typedef PrintScalarTag type; +}; +template<> struct PrintTag { + typedef PrintPointerTag type; +}; struct JsonPrinter { // If indentation is less than 0, that indicates we don't want any newlines diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 055277b2e5a..fe1d639867f 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -2368,8 +2368,12 @@ template void EnumDef::ChangeEnumValue(EnumVal *ev, T new_value) { } namespace EnumHelper { -template struct EnumValType { typedef int64_t type; }; -template<> struct EnumValType { typedef uint64_t type; }; +template struct EnumValType { + typedef int64_t type; +}; +template<> struct EnumValType { + typedef uint64_t type; +}; } // namespace EnumHelper struct EnumValBuilder { diff --git a/src/reflection.cpp b/src/reflection.cpp index 0d0814ef622..f064c1c6bdf 100644 --- a/src/reflection.cpp +++ b/src/reflection.cpp @@ -24,17 +24,18 @@ namespace flatbuffers { namespace { -static void CopyInline(FlatBufferBuilder &fbb, const reflection::Field &fielddef, - const Table &table, size_t align, size_t size) { +static void CopyInline(FlatBufferBuilder &fbb, + const reflection::Field &fielddef, const Table &table, + size_t align, size_t size) { fbb.Align(align); fbb.PushBytes(table.GetStruct(fielddef.offset()), size); fbb.TrackField(fielddef.offset(), fbb.GetSize()); } static bool VerifyStruct(flatbuffers::Verifier &v, - const flatbuffers::Table &parent_table, - voffset_t field_offset, const reflection::Object &obj, - bool required) { + const flatbuffers::Table &parent_table, + voffset_t field_offset, const reflection::Object &obj, + bool required) { auto offset = parent_table.GetOptionalFieldOffset(field_offset); if (required && !offset) { return false; } @@ -44,9 +45,10 @@ static bool VerifyStruct(flatbuffers::Verifier &v, } static bool VerifyVectorOfStructs(flatbuffers::Verifier &v, - const flatbuffers::Table &parent_table, - voffset_t field_offset, - const reflection::Object &obj, bool required) { + const flatbuffers::Table &parent_table, + voffset_t field_offset, + const reflection::Object &obj, + bool required) { auto p = parent_table.GetPointer(field_offset); if (required && !p) { return false; } @@ -54,13 +56,15 @@ static bool VerifyVectorOfStructs(flatbuffers::Verifier &v, } // forward declare to resolve cyclic deps between VerifyObject and VerifyVector -static bool VerifyObject(flatbuffers::Verifier &v, const reflection::Schema &schema, - const reflection::Object &obj, - const flatbuffers::Table *table, bool required); - -static bool VerifyUnion(flatbuffers::Verifier &v, const reflection::Schema &schema, - uint8_t utype, const uint8_t *elem, - const reflection::Field &union_field) { +static bool VerifyObject(flatbuffers::Verifier &v, + const reflection::Schema &schema, + const reflection::Object &obj, + const flatbuffers::Table *table, bool required); + +static bool VerifyUnion(flatbuffers::Verifier &v, + const reflection::Schema &schema, uint8_t utype, + const uint8_t *elem, + const reflection::Field &union_field) { if (!utype) return true; // Not present. auto fb_enum = schema.enums()->Get(union_field.type()->index()); if (utype >= fb_enum->values()->size()) return false; @@ -83,9 +87,10 @@ static bool VerifyUnion(flatbuffers::Verifier &v, const reflection::Schema &sche } } -static bool VerifyVector(flatbuffers::Verifier &v, const reflection::Schema &schema, - const flatbuffers::Table &table, - const reflection::Field &vec_field) { +static bool VerifyVector(flatbuffers::Verifier &v, + const reflection::Schema &schema, + const flatbuffers::Table &table, + const reflection::Field &vec_field) { FLATBUFFERS_ASSERT(vec_field.type()->base_type() == reflection::Vector); if (!table.VerifyField(v, vec_field.offset(), sizeof(uoffset_t))) return false; @@ -161,9 +166,10 @@ static bool VerifyVector(flatbuffers::Verifier &v, const reflection::Schema &sch } } -static bool VerifyObject(flatbuffers::Verifier &v, const reflection::Schema &schema, - const reflection::Object &obj, - const flatbuffers::Table *table, bool required) { +static bool VerifyObject(flatbuffers::Verifier &v, + const reflection::Schema &schema, + const reflection::Object &obj, + const flatbuffers::Table *table, bool required) { if (!table) return !required; if (!table->VerifyTableStart(v)) return false; for (uoffset_t i = 0; i < obj.fields()->size(); i++) { @@ -251,8 +257,7 @@ static bool VerifyObject(flatbuffers::Verifier &v, const reflection::Schema &sch return true; } - -} // namespace +} // namespace int64_t GetAnyValueI(reflection::BaseType type, const uint8_t *data) { // clang-format off @@ -618,9 +623,6 @@ const uint8_t *AddFlatBuffer(std::vector &flatbuf, return flatbuf.data() + insertion_point + root_offset; } - - - Offset CopyTable(FlatBufferBuilder &fbb, const reflection::Schema &schema, const reflection::Object &objectdef, @@ -691,7 +693,7 @@ Offset CopyTable(FlatBufferBuilder &fbb, FLATBUFFERS_FALLTHROUGH(); // fall thru default: { // Scalars and structs. auto element_size = GetTypeSize(element_base_type); - auto element_alignment = element_size; // For primitive elements + auto element_alignment = element_size; // For primitive elements if (elemobjectdef && elemobjectdef->is_struct()) element_size = elemobjectdef->bytesize(); fbb.StartVector(vec->size(), element_size, element_alignment); @@ -746,7 +748,6 @@ Offset CopyTable(FlatBufferBuilder &fbb, } } - bool Verify(const reflection::Schema &schema, const reflection::Object &root, const uint8_t *const buf, const size_t length, const uoffset_t max_depth, const uoffset_t max_tables) { diff --git a/src/util.cpp b/src/util.cpp index 38d8536c090..b201246fd7a 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -90,13 +90,12 @@ static std::string ToCamelCase(const std::string &input, bool is_upper) { std::string s; for (size_t i = 0; i < input.length(); i++) { if (!i && input[i] == '_') { - s += input[i]; - // we ignore leading underscore but make following - // alphabet char upper. - if (i + 1 < input.length() && is_alpha(input[i + 1])) - s += CharToUpper(input[++i]); - } - else if (!i) + s += input[i]; + // we ignore leading underscore but make following + // alphabet char upper. + if (i + 1 < input.length() && is_alpha(input[i + 1])) + s += CharToUpper(input[++i]); + } else if (!i) s += is_upper ? CharToUpper(input[i]) : CharToLower(input[i]); else if (input[i] == '_' && i + 1 < input.length()) s += CharToUpper(input[++i]); @@ -116,7 +115,10 @@ static std::string ToSnakeCase(const std::string &input, bool screaming) { } else if (!islower(input[i])) { // Prevent duplicate underscores for Upper_Snake_Case strings // and UPPERCASE strings. - if (islower(input[i - 1]) || (isdigit(input[i-1]) && !isdigit(input[i]))) { s += '_'; } + if (islower(input[i - 1]) || + (isdigit(input[i - 1]) && !isdigit(input[i]))) { + s += '_'; + } s += screaming ? CharToUpper(input[i]) : CharToLower(input[i]); } else { s += screaming ? CharToUpper(input[i]) : input[i]; @@ -126,7 +128,7 @@ static std::string ToSnakeCase(const std::string &input, bool screaming) { } std::string ToAll(const std::string &input, - std::function transform) { + std::function transform) { std::string s; for (size_t i = 0; i < input.length(); i++) { s += transform(input[i]); } return s; @@ -142,7 +144,10 @@ std::string CamelToSnake(const std::string &input) { } else if (!islower(input[i])) { // Prevent duplicate underscores for Upper_Snake_Case strings // and UPPERCASE strings. - if (islower(input[i - 1]) || (isdigit(input[i-1]) && !isdigit(input[i]))) { s += '_'; } + if (islower(input[i - 1]) || + (isdigit(input[i - 1]) && !isdigit(input[i]))) { + s += '_'; + } s += CharToLower(input[i]); } else { s += input[i]; @@ -184,7 +189,6 @@ std::string ToDasher(const std::string &input) { return s; } - // Converts foo_bar_123baz_456 to foo_bar123_baz456 std::string SnakeToSnake2(const std::string &s) { if (s.length() <= 1) return s; @@ -206,8 +210,7 @@ std::string SnakeToSnake2(const std::string &s) { return result; } -} // namespace - +} // namespace bool LoadFile(const char *name, bool binary, std::string *buf) { FLATBUFFERS_ASSERT(g_load_file_function); diff --git a/tests/alignment_test.cpp b/tests/alignment_test.cpp index 1026fc3397c..9fbf6d8ebfd 100644 --- a/tests/alignment_test.cpp +++ b/tests/alignment_test.cpp @@ -1,7 +1,7 @@ #include "alignment_test.h" -#include "flatbuffers/flatbuffer_builder.h" #include "alignment_test_generated.h" +#include "flatbuffers/flatbuffer_builder.h" #include "test_assert.h" namespace flatbuffers { @@ -16,7 +16,7 @@ void AlignmentTest() { BadAlignmentSmall *small; Offset> small_offset = builder.CreateUninitializedVectorOfStructs(9, &small); - (void)small; // We do not have to write data to trigger the test failure + (void)small; // We do not have to write data to trigger the test failure Offset root = CreateBadAlignmentRoot(builder, outer_large, small_offset); diff --git a/tests/flexbuffers_test.cpp b/tests/flexbuffers_test.cpp index b8da8ed70d3..c504f4e3b83 100644 --- a/tests/flexbuffers_test.cpp +++ b/tests/flexbuffers_test.cpp @@ -1,7 +1,7 @@ -#include - #include "flexbuffers_test.h" +#include + #include "flatbuffers/flexbuffers.h" #include "flatbuffers/idl.h" #include "is_quiet_nan.h" diff --git a/tests/fuzz_test.cpp b/tests/fuzz_test.cpp index f6ee238d7f4..4e42549a17c 100644 --- a/tests/fuzz_test.cpp +++ b/tests/fuzz_test.cpp @@ -1,7 +1,7 @@ -#include - #include "fuzz_test.h" +#include + #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" #include "test_assert.h" @@ -22,7 +22,7 @@ void lcg_reset() { lcg_seed = 48271; } template static void CompareTableFieldValue(flatbuffers::Table *table, - flatbuffers::voffset_t voffset, T val) { + flatbuffers::voffset_t voffset, T val) { T read = table->GetField(voffset, static_cast(0)); TEST_EQ(read, val); } diff --git a/tests/json_test.cpp b/tests/json_test.cpp index 8acbb10eebe..86367eec35a 100644 --- a/tests/json_test.cpp +++ b/tests/json_test.cpp @@ -2,8 +2,8 @@ #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" +#include "monster_test_bfbs_generated.h" #include "monster_test_generated.h" -#include "monster_test_bfbs_generated.h" #include "optional_scalars_generated.h" #include "test_assert.h" @@ -13,7 +13,7 @@ namespace tests { using namespace MyGame::Example; // Check stringify of an default enum value to json -void JsonDefaultTest(const std::string& tests_data_path) { +void JsonDefaultTest(const std::string &tests_data_path) { // load FlatBuffer schema (.fbs) from disk std::string schemafile; TEST_EQ(flatbuffers::LoadFile((tests_data_path + "monster_test.fbs").c_str(), @@ -44,7 +44,7 @@ void JsonDefaultTest(const std::string& tests_data_path) { TEST_EQ(std::string::npos != jsongen.find("testf: 3.14159"), true); } -void JsonEnumsTest(const std::string& tests_data_path) { +void JsonEnumsTest(const std::string &tests_data_path) { // load FlatBuffer schema (.fbs) from disk std::string schemafile; TEST_EQ(flatbuffers::LoadFile((tests_data_path + "monster_test.fbs").c_str(), @@ -83,7 +83,8 @@ void JsonEnumsTest(const std::string& tests_data_path) { TEST_EQ(std::string::npos != future_json.find("color: 13"), true); } -void JsonOptionalTest(const std::string& tests_data_path, bool default_scalars) { +void JsonOptionalTest(const std::string &tests_data_path, + bool default_scalars) { // load FlatBuffer schema (.fbs) and JSON from disk std::string schemafile; std::string jsonfile; @@ -124,7 +125,7 @@ void JsonOptionalTest(const std::string& tests_data_path, bool default_scalars) TEST_EQ_STR(jsongen.c_str(), jsonfile.c_str()); } -void ParseIncorrectMonsterJsonTest(const std::string& tests_data_path) { +void ParseIncorrectMonsterJsonTest(const std::string &tests_data_path) { std::string schemafile; TEST_EQ(flatbuffers::LoadFile((tests_data_path + "monster_test.bfbs").c_str(), true, &schemafile), @@ -179,7 +180,7 @@ table JsonUnionStructTest { union_with_struct: UnionWithStruct; } root_type JsonUnionStructTest; )"; // source text to parse and expected result of generation text back - auto json_source =R"({ + auto json_source = R"({ union_with_struct_type: "MyStruct", union_with_struct: { field: 12345 diff --git a/tests/key_field_test.cpp b/tests/key_field_test.cpp index 7194e6d69ae..20eb2094c18 100644 --- a/tests/key_field_test.cpp +++ b/tests/key_field_test.cpp @@ -38,7 +38,6 @@ void FixedSizedScalarKeyInStructTest() { bars.push_back(Bar(flatbuffers::make_span(test_float_array4), 1)); auto bar_vec = fbb.CreateVectorOfSortedStructs(&bars); - auto t = CreateFooTable(fbb, 1, 2, test_string, baz_vec, bar_vec); fbb.Finish(t); @@ -51,15 +50,11 @@ void FixedSizedScalarKeyInStructTest() { TEST_EQ(sorted_baz_vec->Get(3)->b(), 4); uint8_t test_array[4]; - auto* key_array = &flatbuffers::CastToArray(test_array); + auto *key_array = &flatbuffers::CastToArray(test_array); key_array->CopyFromSpan(flatbuffers::make_span(test_array1)); - - TEST_NOTNULL( - sorted_baz_vec->LookupByKey(key_array)); - TEST_EQ( - sorted_baz_vec->LookupByKey(key_array)->b(), - 4); + TEST_NOTNULL(sorted_baz_vec->LookupByKey(key_array)); + TEST_EQ(sorted_baz_vec->LookupByKey(key_array)->b(), 4); uint8_t array_int[4] = { 7, 2, 3, 0 }; key_array->CopyFromSpan(flatbuffers::make_span(array_int)); TEST_EQ(sorted_baz_vec->LookupByKey(key_array), @@ -70,7 +65,7 @@ void FixedSizedScalarKeyInStructTest() { TEST_EQ(sorted_bar_vec->Get(3)->b(), 4); float test_float_array[3]; - auto* key_float_array = &flatbuffers::CastToArray(test_float_array); + auto *key_float_array = &flatbuffers::CastToArray(test_float_array); key_float_array->CopyFromSpan(flatbuffers::make_span(test_float_array1)); TEST_NOTNULL(sorted_bar_vec->LookupByKey(key_float_array)); TEST_EQ(sorted_bar_vec->LookupByKey(key_float_array)->b(), 3); @@ -105,7 +100,6 @@ void StructKeyInStructTest() { auto orc = foo_builder.Finish(); fbb.Finish(orc); - uint8_t *buf = fbb.GetBufferPointer(); auto foo_table = GetFooTable(buf); @@ -153,9 +147,14 @@ void NestedStructKeyInStructTest() { TEST_EQ(sorted_fruit_vec->Get(0)->b(), 3); TEST_EQ(sorted_fruit_vec->Get(1)->b(), 1); TEST_EQ(sorted_fruit_vec->Get(2)->b(), 2); - TEST_EQ(sorted_fruit_vec->LookupByKey(Apple(2, Color(flatbuffers::make_span(test_float_array2), 1)))->b(), 1); - TEST_EQ(sorted_fruit_vec->LookupByKey(Apple(1, Color(flatbuffers::make_span(test_float_array2), 1))), static_cast(nullptr)); - + TEST_EQ(sorted_fruit_vec + ->LookupByKey( + Apple(2, Color(flatbuffers::make_span(test_float_array2), 1))) + ->b(), + 1); + TEST_EQ(sorted_fruit_vec->LookupByKey( + Apple(1, Color(flatbuffers::make_span(test_float_array2), 1))), + static_cast(nullptr)); } void FixedSizedStructArrayKeyInStructTest() { diff --git a/tests/optional_scalars_test.cpp b/tests/optional_scalars_test.cpp index 5dada029100..7713eb558a8 100644 --- a/tests/optional_scalars_test.cpp +++ b/tests/optional_scalars_test.cpp @@ -1,13 +1,14 @@ #include "optional_scalars_test.h" + #include #include + #include "flatbuffers/idl.h" #include "optional_scalars_generated.h" #include "test_assert.h" -namespace flatbuffers{ - namespace tests{ - +namespace flatbuffers { +namespace tests { void OptionalScalarsTest() { // Simple schemas and a "has optional scalar" sentinal. @@ -97,5 +98,5 @@ void OptionalScalarsTest() { TEST_ASSERT(opts->maybe_i32() == flatbuffers::Optional(-1)); } - } -} +} // namespace tests +} // namespace flatbuffers diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index 755ddd084df..6fb3ef3560a 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -31,8 +31,9 @@ void RunTest(const flatbuffers::IDLOptions &opts, const std::string &proto_path, TEST_EQ(import_parser.Parse(import_proto_file.c_str(), include_directories), true); std::string import_fbs; - TEST_EQ(fbs_generator->GenerateCodeString(import_parser, "test", import_fbs), - CodeGenerator::Status::OK); + TEST_EQ( + fbs_generator->GenerateCodeString(import_parser, "test", import_fbs), + CodeGenerator::Status::OK); // auto import_fbs = flatbuffers::GenerateFBS(import_parser, "test", true); // Since `imported.fbs` isn't in the filesystem AbsolutePath can't figure it // out by itself. We manually construct it so Parser works. diff --git a/tests/reflection_test.cpp b/tests/reflection_test.cpp index 9f926895194..869c98db418 100644 --- a/tests/reflection_test.cpp +++ b/tests/reflection_test.cpp @@ -1,19 +1,21 @@ #include "reflection_test.h" + #include "arrays_test_generated.h" #include "flatbuffers/minireflect.h" #include "flatbuffers/reflection.h" #include "flatbuffers/reflection_generated.h" #include "flatbuffers/verifier.h" -#include "test_assert.h" #include "monster_test.h" #include "monster_test_generated.h" +#include "test_assert.h" namespace flatbuffers { namespace tests { using namespace MyGame::Example; -void ReflectionTest(const std::string& tests_data_path, uint8_t *flatbuf, size_t length) { +void ReflectionTest(const std::string &tests_data_path, uint8_t *flatbuf, + size_t length) { // Load a binary schema. std::string bfbsfile; TEST_EQ(flatbuffers::LoadFile((tests_data_path + "monster_test.bfbs").c_str(), diff --git a/tests/test_builder.cpp b/tests/test_builder.cpp index 3b0eaa04c16..8b14a92aea6 100644 --- a/tests/test_builder.cpp +++ b/tests/test_builder.cpp @@ -15,8 +15,7 @@ class TestHeapBuilder : public FlatBufferBuilder { TestHeapBuilder &operator=(const TestHeapBuilder &); public: - TestHeapBuilder() - : FlatBufferBuilder(2048, new OwnedAllocator(), true) {} + TestHeapBuilder() : FlatBufferBuilder(2048, new OwnedAllocator(), true) {} TestHeapBuilder(TestHeapBuilder &&other) : FlatBufferBuilder(std::move(other)) {} @@ -144,7 +143,7 @@ void FlatBufferBuilderTest() { } // forward-declared in test_builder.h -void CheckTestGeneratedIsValid(const MyGame::Example::Color&); +void CheckTestGeneratedIsValid(const MyGame::Example::Color &); // Link-time check using pointer type. void CheckTestGeneratedIsValid(const MyGame::Example::Color &) {} From 950a71ab893e96147c30dd91735af6db73f72ae0 Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Thu, 11 May 2023 18:08:42 -0700 Subject: [PATCH 17/35] Rename GenerateText to make it a compile-time breaking change, to alert any users to the new meaning of the return value --- include/flatbuffers/idl.h | 16 ++++++++-------- include/flatbuffers/registry.h | 2 +- include/flatbuffers/util.h | 2 +- samples/sample_bfbs.cpp | 4 ++-- samples/sample_text.cpp | 2 +- src/idl_gen_text.cpp | 18 ++++++++---------- tests/fuzz_test.cpp | 3 +-- tests/fuzzer/flatbuffers_monster_fuzzer.cc | 4 ++-- tests/fuzzer/flatbuffers_scalar_fuzzer.cc | 7 +++---- tests/json_test.cpp | 11 +++++------ tests/monster_test.cpp | 8 +++----- tests/parser_test.cpp | 17 ++++++----------- tests/proto_test.cpp | 3 ++- tests/test.cpp | 14 +++++++------- 14 files changed, 50 insertions(+), 61 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 2d7c8581fe8..e4a56607f89 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -1210,14 +1210,14 @@ class Parser : public ParserState { // if it is less than 0, no linefeeds will be generated either. // See idl_gen_text.cpp. // strict_json adds "quotes" around field names if true. -// If the flatbuffer cannot be encoded in JSON (e.g., it contains non-UTF-8 -// byte arrays in String values), returns false. -extern const char *GenerateTextFromTable(const Parser &parser, - const void *table, - const std::string &tablename, - std::string *text); -extern const char *GenerateText(const Parser &parser, const void *flatbuffer, - std::string *text); +// These functions return nullptr on success, or an error string, +// which may happen if the flatbuffer cannot be encoded in JSON (e.g., +// it contains non-UTF-8 byte arrays in String values). +extern const char *GenTextFromTable(const Parser &parser, const void *table, + const std::string &tablename, + std::string *text); +extern const char *GenText(const Parser &parser, const void *flatbuffer, + std::string *text); // Generate GRPC Cpp interfaces. // See idl_gen_grpc.cpp. diff --git a/include/flatbuffers/registry.h b/include/flatbuffers/registry.h index ed3d922f2e6..f59aa647d28 100644 --- a/include/flatbuffers/registry.h +++ b/include/flatbuffers/registry.h @@ -52,7 +52,7 @@ class Registry { Parser parser; if (!LoadSchema(ident, &parser)) return false; // Now we're ready to generate text. - auto err = GenerateText(parser, flatbuf, dest); + auto err = GenText(parser, flatbuf, dest); if (err) { lasterror_ = "unable to generate text for FlatBuffer binary: " + std::string(err); diff --git a/include/flatbuffers/util.h b/include/flatbuffers/util.h index 71afdc4d0b4..1ccf3517d30 100644 --- a/include/flatbuffers/util.h +++ b/include/flatbuffers/util.h @@ -623,7 +623,7 @@ inline bool EscapeString(const char *s, size_t length, std::string *_text, // we previously checked for non-UTF-8, so we shouldn't reach // here. // - // 2) We reached here by someone calling GenerateText() + // 2) We reached here by someone calling GenText() // on a previously-serialized flatbuffer. The data might have // non-UTF-8 Strings, or might be corrupt. // diff --git a/samples/sample_bfbs.cpp b/samples/sample_bfbs.cpp index c0017bea320..1178b0efc4a 100644 --- a/samples/sample_bfbs.cpp +++ b/samples/sample_bfbs.cpp @@ -59,13 +59,13 @@ int main(int /*argc*/, const char * /*argv*/[]) { // to ensure it is correct, we now generate text back from the binary, // and compare the two: std::string jsongen1; - if (GenerateText(parser1, parser1.builder_.GetBufferPointer(), &jsongen1)) { + if (GenText(parser1, parser1.builder_.GetBufferPointer(), &jsongen1)) { printf("Couldn't serialize parsed data to JSON!\n"); return 1; } std::string jsongen2; - if (GenerateText(parser2, parser2.builder_.GetBufferPointer(), &jsongen2)) { + if (GenText(parser2, parser2.builder_.GetBufferPointer(), &jsongen2)) { printf("Couldn't serialize parsed data to JSON!\n"); return 1; } diff --git a/samples/sample_text.cpp b/samples/sample_text.cpp index 8580b523d3e..fb42563b07e 100644 --- a/samples/sample_text.cpp +++ b/samples/sample_text.cpp @@ -45,7 +45,7 @@ int main(int /*argc*/, const char * /*argv*/[]) { // to ensure it is correct, we now generate text back from the binary, // and compare the two: std::string jsongen; - if (GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen)) { + if (GenText(parser, parser.builder_.GetBufferPointer(), &jsongen)) { printf("Couldn't serialize parsed data to JSON!\n"); return 1; } diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index 17d518032f0..a34667c4b68 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -384,9 +384,8 @@ static const char *GenerateTextImpl(const Parser &parser, const Table *table, } // Generate a text representation of a flatbuffer in JSON format. -const char *GenerateTextFromTable(const Parser &parser, const void *table, - const std::string &table_name, - std::string *_text) { +const char *GenTextFromTable(const Parser &parser, const void *table, + const std::string &table_name, std::string *_text) { auto struct_def = parser.LookupStruct(table_name); if (struct_def == nullptr) { return "unknown struct"; } auto root = static_cast(table); @@ -394,8 +393,8 @@ const char *GenerateTextFromTable(const Parser &parser, const void *table, } // Generate a text representation of a flatbuffer in JSON format. -const char *GenerateText(const Parser &parser, const void *flatbuffer, - std::string *_text) { +const char *GenText(const Parser &parser, const void *flatbuffer, + std::string *_text) { FLATBUFFERS_ASSERT(parser.root_struct_def_); // call SetRootType() auto root = parser.opts.size_prefixed ? GetSizePrefixedRoot
(flatbuffer) : GetRoot
(flatbuffer); @@ -407,9 +406,8 @@ static std::string TextFileName(const std::string &path, return path + file_name + ".json"; } -static const char *GenerateTextFile(const Parser &parser, - const std::string &path, - const std::string &file_name) { +const char *GenTextFile(const Parser &parser, const std::string &path, + const std::string &file_name) { if (parser.opts.use_flexbuffers) { std::string json; parser.flex_root_.ToString(true, parser.opts.strict_json, json); @@ -420,7 +418,7 @@ static const char *GenerateTextFile(const Parser &parser, } if (!parser.builder_.GetSize() || !parser.root_struct_def_) return nullptr; std::string text; - auto err = GenerateText(parser, parser.builder_.GetBufferPointer(), &text); + auto err = GenText(parser, parser.builder_.GetBufferPointer(), &text); if (err) return err; return flatbuffers::SaveFile(TextFileName(path, file_name).c_str(), text, false) @@ -448,7 +446,7 @@ class TextCodeGenerator : public CodeGenerator { public: Status GenerateCode(const Parser &parser, const std::string &path, const std::string &filename) override { - auto err = GenerateTextFile(parser, path, filename); + auto err = GenTextFile(parser, path, filename); if (err) { status_detail = " (" + std::string(err) + ")"; return Status::ERROR; diff --git a/tests/fuzz_test.cpp b/tests/fuzz_test.cpp index 4e42549a17c..1c9adbc577e 100644 --- a/tests/fuzz_test.cpp +++ b/tests/fuzz_test.cpp @@ -273,8 +273,7 @@ void FuzzTest2() { std::string jsongen; parser.opts.indent_step = 0; - auto result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); + auto result = GenText(parser, parser.builder_.GetBufferPointer(), &jsongen); TEST_NULL(result); if (jsongen != json) { diff --git a/tests/fuzzer/flatbuffers_monster_fuzzer.cc b/tests/fuzzer/flatbuffers_monster_fuzzer.cc index 4b8b79061ec..71a6802789f 100644 --- a/tests/fuzzer/flatbuffers_monster_fuzzer.cc +++ b/tests/fuzzer/flatbuffers_monster_fuzzer.cc @@ -78,8 +78,8 @@ std::string do_test(const flatbuffers::IDLOptions &opts, flatbuffers::Verifier verifier(parser_.builder_.GetBufferPointer(), parser_.builder_.GetSize()); TEST_EQ(true, MyGame::Example::VerifyMonsterBuffer(verifier)); - TEST_ASSERT( - GenerateText(parser_, parser_.builder_.GetBufferPointer(), &jsongen)); + TEST_NULL( + GenText(parser_, parser_.builder_.GetBufferPointer(), &jsongen)); } else if (check_parser) { TEST_OUTPUT_LINE("parser failed with JSON:\n%s", input_json.c_str()); TEST_EQ_STR("", parser_.error_.c_str()); diff --git a/tests/fuzzer/flatbuffers_scalar_fuzzer.cc b/tests/fuzzer/flatbuffers_scalar_fuzzer.cc index faa069e1db5..cd43506f511 100644 --- a/tests/fuzzer/flatbuffers_scalar_fuzzer.cc +++ b/tests/fuzzer/flatbuffers_scalar_fuzzer.cc @@ -218,8 +218,7 @@ bool Parse(flatbuffers::Parser &parser, const std::string &json, std::string *_text) { auto done = parser.ParseJson(json.c_str()); if (done) { - TEST_EQ(GenerateText(parser, parser.builder_.GetBufferPointer(), _text), - true); + TEST_NULL(GenText(parser, parser.builder_.GetBufferPointer(), _text)); } else { *_text = parser.error_; } @@ -358,9 +357,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { } // Compare with print. std::string ref_string, def_string; - FLATBUFFERS_ASSERT(GenerateText( + FLATBUFFERS_ASSERT(!GenText( parser, parser.builder_.GetBufferPointer(), &ref_string)); - FLATBUFFERS_ASSERT(GenerateText( + FLATBUFFERS_ASSERT(!GenText( def_parser, def_parser.builder_.GetBufferPointer(), &def_string)); if (ref_string != def_string) { TEST_OUTPUT_LINE("Stage 3.2 failed: '%s' != '%s'", def_string.c_str(), diff --git a/tests/json_test.cpp b/tests/json_test.cpp index 86367eec35a..2a328638abb 100644 --- a/tests/json_test.cpp +++ b/tests/json_test.cpp @@ -36,7 +36,7 @@ void JsonDefaultTest(const std::string &tests_data_path) { color_monster.add_name(name); FinishMonsterBuffer(builder, color_monster.Finish()); std::string jsongen; - auto result = GenerateText(parser, builder.GetBufferPointer(), &jsongen); + auto result = GenText(parser, builder.GetBufferPointer(), &jsongen); TEST_NULL(result); // default value of the "color" field is Blue TEST_EQ(std::string::npos != jsongen.find("color: \"Blue\""), true); @@ -65,7 +65,7 @@ void JsonEnumsTest(const std::string &tests_data_path) { color_monster.add_color(Color(Color_Blue | Color_Red)); FinishMonsterBuffer(builder, color_monster.Finish()); std::string jsongen; - auto result = GenerateText(parser, builder.GetBufferPointer(), &jsongen); + auto result = GenText(parser, builder.GetBufferPointer(), &jsongen); TEST_NULL(result); TEST_EQ(std::string::npos != jsongen.find("color: \"Red Blue\""), true); // Test forward compatibility with 'output_enum_identifiers = true'. @@ -78,7 +78,7 @@ void JsonEnumsTest(const std::string &tests_data_path) { future_color.add_color( static_cast((1u << 2) | Color_Blue | Color_Red)); FinishMonsterBuffer(builder, future_color.Finish()); - result = GenerateText(parser, builder.GetBufferPointer(), &future_json); + result = GenText(parser, builder.GetBufferPointer(), &future_json); TEST_NULL(result); TEST_EQ(std::string::npos != future_json.find("color: 13"), true); } @@ -119,8 +119,7 @@ void JsonOptionalTest(const std::string &tests_data_path, // to ensure it is correct, we now generate text back from the binary, // and compare the two: std::string jsongen; - auto result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); + auto result = GenText(parser, parser.builder_.GetBufferPointer(), &jsongen); TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), jsonfile.c_str()); } @@ -199,7 +198,7 @@ root_type JsonUnionStructTest; // now generate text back from the binary, and compare the two: std::string json_generated; auto generate_result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &json_generated); + GenText(parser, parser.builder_.GetBufferPointer(), &json_generated); TEST_NULL(generate_result); TEST_EQ_STR(json_source, json_generated.c_str()); } diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index d44f118ea21..8ec031a3ddf 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -646,7 +646,7 @@ void TestMonsterExtraFloats(const std::string &tests_data_path) { TEST_EQ(def_extra->d2(), +infinity_d); TEST_EQ(def_extra->d3(), -infinity_d); std::string jsongen; - auto result = GenerateText(parser, def_obj, &jsongen); + auto result = GenText(parser, def_obj, &jsongen); TEST_NULL(result); // Check expected default values. TEST_EQ(std::string::npos != jsongen.find("f0: nan"), true); @@ -796,8 +796,7 @@ void ParseAndGenerateTextTest(const std::string &tests_data_path, bool binary) { // to ensure it is correct, we now generate text back from the binary, // and compare the two: std::string jsongen; - auto result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); + auto result = GenText(parser, parser.builder_.GetBufferPointer(), &jsongen); TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), jsonfile.c_str()); @@ -836,8 +835,7 @@ void ParseAndGenerateTextTest(const std::string &tests_data_path, bool binary) { // request natural printing for utf-8 strings parser.opts.natural_utf8 = true; parser.opts.strict_json = true; - TEST_NULL( - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen_utf8)); + TEST_NULL(GenText(parser, parser.builder_.GetBufferPointer(), &jsongen_utf8)); TEST_EQ_STR(jsongen_utf8.c_str(), jsonfile_utf8.c_str()); } diff --git a/tests/parser_test.cpp b/tests/parser_test.cpp index 83c67e85eda..085c2fe08c3 100644 --- a/tests/parser_test.cpp +++ b/tests/parser_test.cpp @@ -484,8 +484,7 @@ T TestValue(const char *json, const char *type_name, // Check with print. std::string print_back; parser.opts.indent_step = -1; - TEST_NULL( - GenerateText(parser, parser.builder_.GetBufferPointer(), &print_back)); + TEST_NULL(GenText(parser, parser.builder_.GetBufferPointer(), &print_back)); // restore value from its default if (check_default) { TEST_EQ(parser.Parse(print_back.c_str()), true); } @@ -740,8 +739,7 @@ void UnicodeTest() { true); std::string jsongen; parser.opts.indent_step = -1; - auto result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); + auto result = GenText(parser, parser.builder_.GetBufferPointer(), &jsongen); TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{F: \"\\u20AC\\u00A2\\u30E6\\u30FC\\u30B6\\u30FC" @@ -760,8 +758,7 @@ void UnicodeTestAllowNonUTF8() { true); std::string jsongen; parser.opts.indent_step = -1; - auto result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); + auto result = GenText(parser, parser.builder_.GetBufferPointer(), &jsongen); TEST_NULL(result); TEST_EQ_STR( jsongen.c_str(), @@ -783,11 +780,10 @@ void UnicodeTestGenerateTextFailsOnNonUTF8() { true); std::string jsongen; parser.opts.indent_step = -1; - // Now, disallow non-UTF-8 (the default behavior) so GenerateText indicates + // Now, disallow non-UTF-8 (the default behavior) so GenText indicates // failure. parser.opts.allow_non_utf8 = false; - auto result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); + auto result = GenText(parser, parser.builder_.GetBufferPointer(), &jsongen); TEST_EQ_STR(result, "string contains non-utf8 bytes"); } @@ -825,8 +821,7 @@ void UnknownFieldsTest() { std::string jsongen; parser.opts.indent_step = -1; - auto result = - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); + auto result = GenText(parser, parser.builder_.GetBufferPointer(), &jsongen); TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{str: \"test\",i: 10}"); } diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index 6fb3ef3560a..90c70bdb211 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -324,7 +324,8 @@ void ParseProtoBufAsciiTest() { TEST_EQ(parser.Parse("{ A [1 2] C { B:2 }}"), true); // Similarly, in text output, it should omit these. std::string text; - auto err = flatbuffers::GenerateText( + auto err = + flatbuffers::GenText( parser, parser.builder_.GetBufferPointer(), &text); TEST_NULL(err); TEST_EQ_STR(text.c_str(), diff --git a/tests/test.cpp b/tests/test.cpp index 49018d1b9c8..5d48389395e 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -119,13 +119,13 @@ void GenerateTableTextTest(const std::string &tests_data_path) { TEST_EQ(abilities->Get(2)->distance(), 12); std::string jsongen; - auto result = GenerateTextFromTable(parser, monster, "MyGame.Example.Monster", + auto result = GenTextFromTable(parser, monster, "MyGame.Example.Monster", &jsongen); TEST_NULL(result); // Test sub table const Vec3 *pos = monster->pos(); jsongen.clear(); - result = GenerateTextFromTable(parser, pos, "MyGame.Example.Vec3", &jsongen); + result = GenTextFromTable(parser, pos, "MyGame.Example.Vec3", &jsongen); TEST_NULL(result); TEST_EQ_STR( jsongen.c_str(), @@ -133,13 +133,13 @@ void GenerateTableTextTest(const std::string &tests_data_path) { const Test &test3 = pos->test3(); jsongen.clear(); result = - GenerateTextFromTable(parser, &test3, "MyGame.Example.Test", &jsongen); + GenTextFromTable(parser, &test3, "MyGame.Example.Test", &jsongen); TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{a: 5,b: 6}"); const Test *test4 = monster->test4()->Get(0); jsongen.clear(); result = - GenerateTextFromTable(parser, test4, "MyGame.Example.Test", &jsongen); + GenTextFromTable(parser, test4, "MyGame.Example.Test", &jsongen); TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{a: 10,b: 20}"); } @@ -337,7 +337,7 @@ void UnionVectorTest(const std::string &tests_data_path) { // Generate text using parsed schema. std::string jsongen; - auto result = GenerateText(parser, fbb.GetBufferPointer(), &jsongen); + auto result = GenText(parser, fbb.GetBufferPointer(), &jsongen); TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{\n" @@ -957,7 +957,7 @@ void FixedLengthArrayJsonTest(const std::string &tests_data_path, bool binary) { // Export to JSON std::string jsonGen; TEST_NULL( - GenerateText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen)); + GenText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen)); // Import from JSON TEST_EQ(parserGen.Parse(jsonGen.c_str()), true); @@ -1083,7 +1083,7 @@ void TestEmbeddedBinarySchema(const std::string &tests_data_path) { // Export to JSON std::string jsonGen; TEST_NULL( - GenerateText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen)); + GenText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen)); // Import from JSON TEST_EQ(parserGen.Parse(jsonGen.c_str()), true); From 426f3b8bf2ee9c0bdfd48cd1d3a0145d969d5714 Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Thu, 11 May 2023 18:26:06 -0700 Subject: [PATCH 18/35] Missing GenTextFile decl --- include/flatbuffers/idl.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index e4a56607f89..e1008a73c59 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -1218,6 +1218,8 @@ extern const char *GenTextFromTable(const Parser &parser, const void *table, std::string *text); extern const char *GenText(const Parser &parser, const void *flatbuffer, std::string *text); +extern const char *GenTextFile(const Parser &parser, const std::string &path, + const std::string &file_name); // Generate GRPC Cpp interfaces. // See idl_gen_grpc.cpp. From 18cadc79c143a0ebda178fa4763d0c30617cbd04 Mon Sep 17 00:00:00 2001 From: sssooonnnggg Date: Sat, 13 May 2023 01:49:50 +0800 Subject: [PATCH 19/35] fix(TS): fixed incorrect function name when importing unionTo functions (#7958) --- src/idl_gen_ts.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index a21b21bd225..7bee3f80148 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -849,8 +849,8 @@ class TsGenerator : public BaseGenerator { } if (enum_def.is_union) { - symbols_expression += ", unionTo" + name; - symbols_expression += ", unionListTo" + name; + symbols_expression += (", " + namer_.Function("unionTo" + name)); + symbols_expression += (", " + namer_.Function("unionListTo" + name)); } return symbols_expression; From 2bc252924535f4ab94acfc1effa73ad48415880b Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 12 May 2023 16:26:21 -0700 Subject: [PATCH 20/35] remove and auto-generate alignment_test_generated.h --- CMakeLists.txt | 7 +- tests/.gitignore | 2 + tests/alignment_test_generated.h | 497 ------------------------------- 3 files changed, 6 insertions(+), 500 deletions(-) create mode 100644 tests/.gitignore delete mode 100644 tests/alignment_test_generated.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 04ff113e2ca..fd715060531 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -491,12 +491,13 @@ endif() function(compile_schema SRC_FBS OPT OUT_GEN_FILE) get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS}) - add_custom_command(TARGET flatc POST_BUILD - COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" + add_custom_command( + OUTPUT ${GEN_HEADER} + COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" ${OPT} -o "${SRC_FBS_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" - BYPRODUCTS ${GEN_HEADER} + DEPENDS flatc COMMENT "flatc generation: `${SRC_FBS}` -> `${GEN_HEADER}`" ) set(${OUT_GEN_FILE} ${GEN_HEADER} PARENT_SCOPE) diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 00000000000..25d3361959e --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,2 @@ +# Generated files shouldn't be checked in for tests. +**_generated.h \ No newline at end of file diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h deleted file mode 100644 index 59333aeedc5..00000000000 --- a/tests/alignment_test_generated.h +++ /dev/null @@ -1,497 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - - -#ifndef FLATBUFFERS_GENERATED_ALIGNMENTTEST_H_ -#define FLATBUFFERS_GENERATED_ALIGNMENTTEST_H_ - -#include "flatbuffers/flatbuffers.h" - -// Ensure the included flatbuffers.h is the same version as when this file was -// generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, - "Non-compatible flatbuffers version included"); - -struct BadAlignmentSmall; - -struct BadAlignmentLarge; - -struct OuterLarge; -struct OuterLargeBuilder; -struct OuterLargeT; - -struct BadAlignmentRoot; -struct BadAlignmentRootBuilder; -struct BadAlignmentRootT; - -bool operator==(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs); -bool operator!=(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs); -bool operator==(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs); -bool operator!=(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs); -bool operator==(const OuterLargeT &lhs, const OuterLargeT &rhs); -bool operator!=(const OuterLargeT &lhs, const OuterLargeT &rhs); -bool operator==(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs); -bool operator!=(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs); - -inline const ::flatbuffers::TypeTable *BadAlignmentSmallTypeTable(); - -inline const ::flatbuffers::TypeTable *BadAlignmentLargeTypeTable(); - -inline const ::flatbuffers::TypeTable *OuterLargeTypeTable(); - -inline const ::flatbuffers::TypeTable *BadAlignmentRootTypeTable(); - -FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BadAlignmentSmall FLATBUFFERS_FINAL_CLASS { - private: - uint32_t var_0_; - uint32_t var_1_; - uint32_t var_2_; - - public: - static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return BadAlignmentSmallTypeTable(); - } - BadAlignmentSmall() - : var_0_(0), - var_1_(0), - var_2_(0) { - } - BadAlignmentSmall(uint32_t _var_0, uint32_t _var_1, uint32_t _var_2) - : var_0_(::flatbuffers::EndianScalar(_var_0)), - var_1_(::flatbuffers::EndianScalar(_var_1)), - var_2_(::flatbuffers::EndianScalar(_var_2)) { - } - uint32_t var_0() const { - return ::flatbuffers::EndianScalar(var_0_); - } - void mutate_var_0(uint32_t _var_0) { - ::flatbuffers::WriteScalar(&var_0_, _var_0); - } - uint32_t var_1() const { - return ::flatbuffers::EndianScalar(var_1_); - } - void mutate_var_1(uint32_t _var_1) { - ::flatbuffers::WriteScalar(&var_1_, _var_1); - } - uint32_t var_2() const { - return ::flatbuffers::EndianScalar(var_2_); - } - void mutate_var_2(uint32_t _var_2) { - ::flatbuffers::WriteScalar(&var_2_, _var_2); - } -}; -FLATBUFFERS_STRUCT_END(BadAlignmentSmall, 12); - -inline bool operator==(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs) { - return - (lhs.var_0() == rhs.var_0()) && - (lhs.var_1() == rhs.var_1()) && - (lhs.var_2() == rhs.var_2()); -} - -inline bool operator!=(const BadAlignmentSmall &lhs, const BadAlignmentSmall &rhs) { - return !(lhs == rhs); -} - - -FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) BadAlignmentLarge FLATBUFFERS_FINAL_CLASS { - private: - uint64_t var_0_; - - public: - static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return BadAlignmentLargeTypeTable(); - } - BadAlignmentLarge() - : var_0_(0) { - } - BadAlignmentLarge(uint64_t _var_0) - : var_0_(::flatbuffers::EndianScalar(_var_0)) { - } - uint64_t var_0() const { - return ::flatbuffers::EndianScalar(var_0_); - } - void mutate_var_0(uint64_t _var_0) { - ::flatbuffers::WriteScalar(&var_0_, _var_0); - } -}; -FLATBUFFERS_STRUCT_END(BadAlignmentLarge, 8); - -inline bool operator==(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs) { - return - (lhs.var_0() == rhs.var_0()); -} - -inline bool operator!=(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rhs) { - return !(lhs == rhs); -} - - -struct OuterLargeT : public ::flatbuffers::NativeTable { - typedef OuterLarge TableType; - std::unique_ptr large{}; - OuterLargeT() = default; - OuterLargeT(const OuterLargeT &o); - OuterLargeT(OuterLargeT&&) FLATBUFFERS_NOEXCEPT = default; - OuterLargeT &operator=(OuterLargeT o) FLATBUFFERS_NOEXCEPT; -}; - -struct OuterLarge FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef OuterLargeT NativeTableType; - typedef OuterLargeBuilder Builder; - static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return OuterLargeTypeTable(); - } - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_LARGE = 4 - }; - const BadAlignmentLarge *large() const { - return GetStruct(VT_LARGE); - } - BadAlignmentLarge *mutable_large() { - return GetStruct(VT_LARGE); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyField(verifier, VT_LARGE, 8) && - verifier.EndTable(); - } - OuterLargeT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(OuterLargeT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; - static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -}; - -struct OuterLargeBuilder { - typedef OuterLarge Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_large(const BadAlignmentLarge *large) { - fbb_.AddStruct(OuterLarge::VT_LARGE, large); - } - explicit OuterLargeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateOuterLarge( - ::flatbuffers::FlatBufferBuilder &_fbb, - const BadAlignmentLarge *large = nullptr) { - OuterLargeBuilder builder_(_fbb); - builder_.add_large(large); - return builder_.Finish(); -} - -::flatbuffers::Offset CreateOuterLarge(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); - -struct BadAlignmentRootT : public ::flatbuffers::NativeTable { - typedef BadAlignmentRoot TableType; - std::unique_ptr large{}; - std::vector small{}; - BadAlignmentRootT() = default; - BadAlignmentRootT(const BadAlignmentRootT &o); - BadAlignmentRootT(BadAlignmentRootT&&) FLATBUFFERS_NOEXCEPT = default; - BadAlignmentRootT &operator=(BadAlignmentRootT o) FLATBUFFERS_NOEXCEPT; -}; - -struct BadAlignmentRoot FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef BadAlignmentRootT NativeTableType; - typedef BadAlignmentRootBuilder Builder; - static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return BadAlignmentRootTypeTable(); - } - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_LARGE = 4, - VT_SMALL = 6 - }; - const OuterLarge *large() const { - return GetPointer(VT_LARGE); - } - OuterLarge *mutable_large() { - return GetPointer(VT_LARGE); - } - const ::flatbuffers::Vector *small() const { - return GetPointer *>(VT_SMALL); - } - ::flatbuffers::Vector *mutable_small() { - return GetPointer<::flatbuffers::Vector *>(VT_SMALL); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyOffset(verifier, VT_LARGE) && - verifier.VerifyTable(large()) && - VerifyOffset(verifier, VT_SMALL) && - verifier.VerifyVector(small()) && - verifier.EndTable(); - } - BadAlignmentRootT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(BadAlignmentRootT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; - static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -}; - -struct BadAlignmentRootBuilder { - typedef BadAlignmentRoot Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_large(::flatbuffers::Offset large) { - fbb_.AddOffset(BadAlignmentRoot::VT_LARGE, large); - } - void add_small(::flatbuffers::Offset<::flatbuffers::Vector> small) { - fbb_.AddOffset(BadAlignmentRoot::VT_SMALL, small); - } - explicit BadAlignmentRootBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateBadAlignmentRoot( - ::flatbuffers::FlatBufferBuilder &_fbb, - ::flatbuffers::Offset large = 0, - ::flatbuffers::Offset<::flatbuffers::Vector> small = 0) { - BadAlignmentRootBuilder builder_(_fbb); - builder_.add_small(small); - builder_.add_large(large); - return builder_.Finish(); -} - -inline ::flatbuffers::Offset CreateBadAlignmentRootDirect( - ::flatbuffers::FlatBufferBuilder &_fbb, - ::flatbuffers::Offset large = 0, - const std::vector *small = nullptr) { - auto small__ = small ? _fbb.CreateVectorOfStructs(*small) : 0; - return CreateBadAlignmentRoot( - _fbb, - large, - small__); -} - -::flatbuffers::Offset CreateBadAlignmentRoot(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); - - -inline bool operator==(const OuterLargeT &lhs, const OuterLargeT &rhs) { - return - ((lhs.large == rhs.large) || (lhs.large && rhs.large && *lhs.large == *rhs.large)); -} - -inline bool operator!=(const OuterLargeT &lhs, const OuterLargeT &rhs) { - return !(lhs == rhs); -} - - -inline OuterLargeT::OuterLargeT(const OuterLargeT &o) - : large((o.large) ? new BadAlignmentLarge(*o.large) : nullptr) { -} - -inline OuterLargeT &OuterLargeT::operator=(OuterLargeT o) FLATBUFFERS_NOEXCEPT { - std::swap(large, o.large); - return *this; -} - -inline OuterLargeT *OuterLarge::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { - auto _o = std::unique_ptr(new OuterLargeT()); - UnPackTo(_o.get(), _resolver); - return _o.release(); -} - -inline void OuterLarge::UnPackTo(OuterLargeT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { - (void)_o; - (void)_resolver; - { auto _e = large(); if (_e) _o->large = std::unique_ptr(new BadAlignmentLarge(*_e)); } -} - -inline ::flatbuffers::Offset OuterLarge::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { - return CreateOuterLarge(_fbb, _o, _rehasher); -} - -inline ::flatbuffers::Offset CreateOuterLarge(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { - (void)_rehasher; - (void)_o; - struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const OuterLargeT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; - auto _large = _o->large ? _o->large.get() : nullptr; - return CreateOuterLarge( - _fbb, - _large); -} - - -inline bool operator==(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs) { - return - ((lhs.large == rhs.large) || (lhs.large && rhs.large && *lhs.large == *rhs.large)) && - (lhs.small == rhs.small); -} - -inline bool operator!=(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs) { - return !(lhs == rhs); -} - - -inline BadAlignmentRootT::BadAlignmentRootT(const BadAlignmentRootT &o) - : large((o.large) ? new OuterLargeT(*o.large) : nullptr), - small(o.small) { -} - -inline BadAlignmentRootT &BadAlignmentRootT::operator=(BadAlignmentRootT o) FLATBUFFERS_NOEXCEPT { - std::swap(large, o.large); - std::swap(small, o.small); - return *this; -} - -inline BadAlignmentRootT *BadAlignmentRoot::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { - auto _o = std::unique_ptr(new BadAlignmentRootT()); - UnPackTo(_o.get(), _resolver); - return _o.release(); -} - -inline void BadAlignmentRoot::UnPackTo(BadAlignmentRootT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { - (void)_o; - (void)_resolver; - { auto _e = large(); if (_e) { if(_o->large) { _e->UnPackTo(_o->large.get(), _resolver); } else { _o->large = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->large) { _o->large.reset(); } } - { auto _e = small(); if (_e) { _o->small.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->small[_i] = *_e->Get(_i); } } else { _o->small.resize(0); } } -} - -inline ::flatbuffers::Offset BadAlignmentRoot::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { - return CreateBadAlignmentRoot(_fbb, _o, _rehasher); -} - -inline ::flatbuffers::Offset CreateBadAlignmentRoot(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { - (void)_rehasher; - (void)_o; - struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const BadAlignmentRootT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; - auto _large = _o->large ? CreateOuterLarge(_fbb, _o->large.get(), _rehasher) : 0; - auto _small = _o->small.size() ? _fbb.CreateVectorOfStructs(_o->small) : 0; - return CreateBadAlignmentRoot( - _fbb, - _large, - _small); -} - -inline const ::flatbuffers::TypeTable *BadAlignmentSmallTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_UINT, 0, -1 }, - { ::flatbuffers::ET_UINT, 0, -1 }, - { ::flatbuffers::ET_UINT, 0, -1 } - }; - static const int64_t values[] = { 0, 4, 8, 12 }; - static const char * const names[] = { - "var_0", - "var_1", - "var_2" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names - }; - return &tt; -} - -inline const ::flatbuffers::TypeTable *BadAlignmentLargeTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_ULONG, 0, -1 } - }; - static const int64_t values[] = { 0, 8 }; - static const char * const names[] = { - "var_0" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names - }; - return &tt; -} - -inline const ::flatbuffers::TypeTable *OuterLargeTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_SEQUENCE, 0, 0 } - }; - static const ::flatbuffers::TypeFunction type_refs[] = { - BadAlignmentLargeTypeTable - }; - static const char * const names[] = { - "large" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names - }; - return &tt; -} - -inline const ::flatbuffers::TypeTable *BadAlignmentRootTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_SEQUENCE, 0, 0 }, - { ::flatbuffers::ET_SEQUENCE, 1, 1 } - }; - static const ::flatbuffers::TypeFunction type_refs[] = { - OuterLargeTypeTable, - BadAlignmentSmallTypeTable - }; - static const char * const names[] = { - "large", - "small" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names - }; - return &tt; -} - -inline const BadAlignmentRoot *GetBadAlignmentRoot(const void *buf) { - return ::flatbuffers::GetRoot(buf); -} - -inline const BadAlignmentRoot *GetSizePrefixedBadAlignmentRoot(const void *buf) { - return ::flatbuffers::GetSizePrefixedRoot(buf); -} - -inline BadAlignmentRoot *GetMutableBadAlignmentRoot(void *buf) { - return ::flatbuffers::GetMutableRoot(buf); -} - -inline BadAlignmentRoot *GetMutableSizePrefixedBadAlignmentRoot(void *buf) { - return ::flatbuffers::GetMutableSizePrefixedRoot(buf); -} - -inline bool VerifyBadAlignmentRootBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); -} - -inline bool VerifySizePrefixedBadAlignmentRootBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); -} - -inline void FinishBadAlignmentRootBuffer( - ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { - fbb.Finish(root); -} - -inline void FinishSizePrefixedBadAlignmentRootBuffer( - ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { - fbb.FinishSizePrefixed(root); -} - -inline std::unique_ptr UnPackBadAlignmentRoot( - const void *buf, - const ::flatbuffers::resolver_function_t *res = nullptr) { - return std::unique_ptr(GetBadAlignmentRoot(buf)->UnPack(res)); -} - -inline std::unique_ptr UnPackSizePrefixedBadAlignmentRoot( - const void *buf, - const ::flatbuffers::resolver_function_t *res = nullptr) { - return std::unique_ptr(GetSizePrefixedBadAlignmentRoot(buf)->UnPack(res)); -} - -#endif // FLATBUFFERS_GENERATED_ALIGNMENTTEST_H_ From 05743591e13938c05a3621f09d4a41d078aacec0 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 12 May 2023 16:44:28 -0700 Subject: [PATCH 21/35] remove and auto-generate arrays_test_generated.h --- CMakeLists.txt | 11 +- tests/64bit/offset64_test.cpp | 9 +- tests/arrays_test_generated.h | 539 ---------------------------------- 3 files changed, 14 insertions(+), 545 deletions(-) delete mode 100644 tests/arrays_test_generated.h diff --git a/CMakeLists.txt b/CMakeLists.txt index fd715060531..bdabaf45f50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -518,7 +518,15 @@ endfunction() if(FLATBUFFERS_BUILD_TESTS) add_executable(flattests ${FlatBuffers_Tests_SRCS}) target_link_libraries(flattests PRIVATE $) - target_include_directories(flattests PUBLIC src tests) + target_include_directories(flattests PUBLIC + # Ideally everything is fully qualified from the root directories + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + # TODO(derekbailey): update includes to fully qualify src/ and tests/ + src + tests + ${CMAKE_CURRENT_BINARY_DIR}/tests + ) # Have tests load data from the source directory, not the build directory. add_definitions(-DFLATBUFFERS_TEST_PATH_PREFIX=${CMAKE_CURRENT_SOURCE_DIR}/) @@ -528,6 +536,7 @@ if(FLATBUFFERS_BUILD_TESTS) SET(FLATC_OPT_COMP ${FLATC_OPT};--gen-compare) compile_schema_for_test(tests/alignment_test.fbs "${FLATC_OPT_COMP}") + compile_schema_for_test(tests/arrays_test.fbs "${FLATC_OPT_COMP};--scoped-enums") compile_schema_for_test(tests/native_inline_table_test.fbs "${FLATC_OPT_COMP}") compile_schema_for_test(tests/native_type_test.fbs "${FLATC_OPT}") compile_schema_for_test(tests/key_field/key_field_sample.fbs "${FLATC_OPT_COMP}") diff --git a/tests/64bit/offset64_test.cpp b/tests/64bit/offset64_test.cpp index 0d3f6e6c6eb..736a37d8ffd 100644 --- a/tests/64bit/offset64_test.cpp +++ b/tests/64bit/offset64_test.cpp @@ -7,15 +7,14 @@ #include #include -#include "evolution/v1_generated.h" -#include "evolution/v2_generated.h" #include "flatbuffers/base.h" #include "flatbuffers/buffer.h" #include "flatbuffers/flatbuffer_builder.h" #include "flatbuffers/flatbuffers.h" -#include "test_64bit_generated.h" -#include "test_assert.h" - +#include "tests/64bit/evolution/v1_generated.h" +#include "tests/64bit/evolution/v2_generated.h" +#include "tests/64bit/test_64bit_generated.h" +#include "tests/test_assert.h" namespace flatbuffers { namespace tests { diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h deleted file mode 100644 index 41fd7f8f303..00000000000 --- a/tests/arrays_test_generated.h +++ /dev/null @@ -1,539 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - - -#ifndef FLATBUFFERS_GENERATED_ARRAYSTEST_MYGAME_EXAMPLE_H_ -#define FLATBUFFERS_GENERATED_ARRAYSTEST_MYGAME_EXAMPLE_H_ - -#include "flatbuffers/flatbuffers.h" - -// Ensure the included flatbuffers.h is the same version as when this file was -// generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, - "Non-compatible flatbuffers version included"); - -namespace MyGame { -namespace Example { - -struct NestedStruct; - -struct ArrayStruct; - -struct ArrayTable; -struct ArrayTableBuilder; -struct ArrayTableT; - -bool operator==(const NestedStruct &lhs, const NestedStruct &rhs); -bool operator!=(const NestedStruct &lhs, const NestedStruct &rhs); -bool operator==(const ArrayStruct &lhs, const ArrayStruct &rhs); -bool operator!=(const ArrayStruct &lhs, const ArrayStruct &rhs); -bool operator==(const ArrayTableT &lhs, const ArrayTableT &rhs); -bool operator!=(const ArrayTableT &lhs, const ArrayTableT &rhs); - -inline const ::flatbuffers::TypeTable *NestedStructTypeTable(); - -inline const ::flatbuffers::TypeTable *ArrayStructTypeTable(); - -inline const ::flatbuffers::TypeTable *ArrayTableTypeTable(); - -enum class TestEnum : int8_t { - A = 0, - B = 1, - C = 2, - MIN = A, - MAX = C -}; - -inline const TestEnum (&EnumValuesTestEnum())[3] { - static const TestEnum values[] = { - TestEnum::A, - TestEnum::B, - TestEnum::C - }; - return values; -} - -inline const char * const *EnumNamesTestEnum() { - static const char * const names[4] = { - "A", - "B", - "C", - nullptr - }; - return names; -} - -inline const char *EnumNameTestEnum(TestEnum e) { - if (::flatbuffers::IsOutRange(e, TestEnum::A, TestEnum::C)) return ""; - const size_t index = static_cast(e); - return EnumNamesTestEnum()[index]; -} - -FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) NestedStruct FLATBUFFERS_FINAL_CLASS { - private: - int32_t a_[2]; - int8_t b_; - int8_t c_[2]; - int8_t padding0__; int32_t padding1__; - int64_t d_[2]; - - public: - static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return NestedStructTypeTable(); - } - NestedStruct() - : a_(), - b_(0), - c_(), - padding0__(0), - padding1__(0), - d_() { - (void)padding0__; - (void)padding1__; - } - NestedStruct(MyGame::Example::TestEnum _b) - : a_(), - b_(::flatbuffers::EndianScalar(static_cast(_b))), - c_(), - padding0__(0), - padding1__(0), - d_() { - (void)padding0__; - (void)padding1__; - } - NestedStruct(::flatbuffers::span _a, MyGame::Example::TestEnum _b, ::flatbuffers::span _c, ::flatbuffers::span _d) - : b_(::flatbuffers::EndianScalar(static_cast(_b))), - padding0__(0), - padding1__(0) { - ::flatbuffers::CastToArray(a_).CopyFromSpan(_a); - ::flatbuffers::CastToArrayOfEnum(c_).CopyFromSpan(_c); - (void)padding0__; - (void)padding1__; - ::flatbuffers::CastToArray(d_).CopyFromSpan(_d); - } - const ::flatbuffers::Array *a() const { - return &::flatbuffers::CastToArray(a_); - } - ::flatbuffers::Array *mutable_a() { - return &::flatbuffers::CastToArray(a_); - } - MyGame::Example::TestEnum b() const { - return static_cast(::flatbuffers::EndianScalar(b_)); - } - void mutate_b(MyGame::Example::TestEnum _b) { - ::flatbuffers::WriteScalar(&b_, static_cast(_b)); - } - const ::flatbuffers::Array *c() const { - return &::flatbuffers::CastToArrayOfEnum(c_); - } - ::flatbuffers::Array *mutable_c() { - return &::flatbuffers::CastToArrayOfEnum(c_); - } - const ::flatbuffers::Array *d() const { - return &::flatbuffers::CastToArray(d_); - } - ::flatbuffers::Array *mutable_d() { - return &::flatbuffers::CastToArray(d_); - } -}; -FLATBUFFERS_STRUCT_END(NestedStruct, 32); - -inline bool operator==(const NestedStruct &lhs, const NestedStruct &rhs) { - return - (*lhs.a() == *rhs.a()) && - (lhs.b() == rhs.b()) && - (*lhs.c() == *rhs.c()) && - (*lhs.d() == *rhs.d()); -} - -inline bool operator!=(const NestedStruct &lhs, const NestedStruct &rhs) { - return !(lhs == rhs); -} - - -FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) ArrayStruct FLATBUFFERS_FINAL_CLASS { - private: - float a_; - int32_t b_[15]; - int8_t c_; - int8_t padding0__; int16_t padding1__; int32_t padding2__; - MyGame::Example::NestedStruct d_[2]; - int32_t e_; - int32_t padding3__; - int64_t f_[2]; - - public: - static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return ArrayStructTypeTable(); - } - ArrayStruct() - : a_(0), - b_(), - c_(0), - padding0__(0), - padding1__(0), - padding2__(0), - d_(), - e_(0), - padding3__(0), - f_() { - (void)padding0__; - (void)padding1__; - (void)padding2__; - (void)padding3__; - } - ArrayStruct(float _a, int8_t _c, int32_t _e) - : a_(::flatbuffers::EndianScalar(_a)), - b_(), - c_(::flatbuffers::EndianScalar(_c)), - padding0__(0), - padding1__(0), - padding2__(0), - d_(), - e_(::flatbuffers::EndianScalar(_e)), - padding3__(0), - f_() { - (void)padding0__; - (void)padding1__; - (void)padding2__; - (void)padding3__; - } - ArrayStruct(float _a, ::flatbuffers::span _b, int8_t _c, ::flatbuffers::span _d, int32_t _e, ::flatbuffers::span _f) - : a_(::flatbuffers::EndianScalar(_a)), - c_(::flatbuffers::EndianScalar(_c)), - padding0__(0), - padding1__(0), - padding2__(0), - e_(::flatbuffers::EndianScalar(_e)), - padding3__(0) { - ::flatbuffers::CastToArray(b_).CopyFromSpan(_b); - (void)padding0__; - (void)padding1__; - (void)padding2__; - ::flatbuffers::CastToArray(d_).CopyFromSpan(_d); - (void)padding3__; - ::flatbuffers::CastToArray(f_).CopyFromSpan(_f); - } - float a() const { - return ::flatbuffers::EndianScalar(a_); - } - void mutate_a(float _a) { - ::flatbuffers::WriteScalar(&a_, _a); - } - const ::flatbuffers::Array *b() const { - return &::flatbuffers::CastToArray(b_); - } - ::flatbuffers::Array *mutable_b() { - return &::flatbuffers::CastToArray(b_); - } - int8_t c() const { - return ::flatbuffers::EndianScalar(c_); - } - void mutate_c(int8_t _c) { - ::flatbuffers::WriteScalar(&c_, _c); - } - const ::flatbuffers::Array *d() const { - return &::flatbuffers::CastToArray(d_); - } - ::flatbuffers::Array *mutable_d() { - return &::flatbuffers::CastToArray(d_); - } - int32_t e() const { - return ::flatbuffers::EndianScalar(e_); - } - void mutate_e(int32_t _e) { - ::flatbuffers::WriteScalar(&e_, _e); - } - const ::flatbuffers::Array *f() const { - return &::flatbuffers::CastToArray(f_); - } - ::flatbuffers::Array *mutable_f() { - return &::flatbuffers::CastToArray(f_); - } -}; -FLATBUFFERS_STRUCT_END(ArrayStruct, 160); - -inline bool operator==(const ArrayStruct &lhs, const ArrayStruct &rhs) { - return - (lhs.a() == rhs.a()) && - (*lhs.b() == *rhs.b()) && - (lhs.c() == rhs.c()) && - (*lhs.d() == *rhs.d()) && - (lhs.e() == rhs.e()) && - (*lhs.f() == *rhs.f()); -} - -inline bool operator!=(const ArrayStruct &lhs, const ArrayStruct &rhs) { - return !(lhs == rhs); -} - - -struct ArrayTableT : public ::flatbuffers::NativeTable { - typedef ArrayTable TableType; - std::unique_ptr a{}; - ArrayTableT() = default; - ArrayTableT(const ArrayTableT &o); - ArrayTableT(ArrayTableT&&) FLATBUFFERS_NOEXCEPT = default; - ArrayTableT &operator=(ArrayTableT o) FLATBUFFERS_NOEXCEPT; -}; - -struct ArrayTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef ArrayTableT NativeTableType; - typedef ArrayTableBuilder Builder; - static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return ArrayTableTypeTable(); - } - enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_A = 4 - }; - const MyGame::Example::ArrayStruct *a() const { - return GetStruct(VT_A); - } - MyGame::Example::ArrayStruct *mutable_a() { - return GetStruct(VT_A); - } - bool Verify(::flatbuffers::Verifier &verifier) const { - return VerifyTableStart(verifier) && - VerifyField(verifier, VT_A, 8) && - verifier.EndTable(); - } - ArrayTableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ArrayTableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; - static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -}; - -struct ArrayTableBuilder { - typedef ArrayTable Table; - ::flatbuffers::FlatBufferBuilder &fbb_; - ::flatbuffers::uoffset_t start_; - void add_a(const MyGame::Example::ArrayStruct *a) { - fbb_.AddStruct(ArrayTable::VT_A, a); - } - explicit ArrayTableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) - : fbb_(_fbb) { - start_ = fbb_.StartTable(); - } - ::flatbuffers::Offset Finish() { - const auto end = fbb_.EndTable(start_); - auto o = ::flatbuffers::Offset(end); - return o; - } -}; - -inline ::flatbuffers::Offset CreateArrayTable( - ::flatbuffers::FlatBufferBuilder &_fbb, - const MyGame::Example::ArrayStruct *a = nullptr) { - ArrayTableBuilder builder_(_fbb); - builder_.add_a(a); - return builder_.Finish(); -} - -::flatbuffers::Offset CreateArrayTable(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); - - -inline bool operator==(const ArrayTableT &lhs, const ArrayTableT &rhs) { - return - ((lhs.a == rhs.a) || (lhs.a && rhs.a && *lhs.a == *rhs.a)); -} - -inline bool operator!=(const ArrayTableT &lhs, const ArrayTableT &rhs) { - return !(lhs == rhs); -} - - -inline ArrayTableT::ArrayTableT(const ArrayTableT &o) - : a((o.a) ? new MyGame::Example::ArrayStruct(*o.a) : nullptr) { -} - -inline ArrayTableT &ArrayTableT::operator=(ArrayTableT o) FLATBUFFERS_NOEXCEPT { - std::swap(a, o.a); - return *this; -} - -inline ArrayTableT *ArrayTable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { - auto _o = std::unique_ptr(new ArrayTableT()); - UnPackTo(_o.get(), _resolver); - return _o.release(); -} - -inline void ArrayTable::UnPackTo(ArrayTableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { - (void)_o; - (void)_resolver; - { auto _e = a(); if (_e) _o->a = std::unique_ptr(new MyGame::Example::ArrayStruct(*_e)); } -} - -inline ::flatbuffers::Offset ArrayTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { - return CreateArrayTable(_fbb, _o, _rehasher); -} - -inline ::flatbuffers::Offset CreateArrayTable(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { - (void)_rehasher; - (void)_o; - struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ArrayTableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; - auto _a = _o->a ? _o->a.get() : nullptr; - return MyGame::Example::CreateArrayTable( - _fbb, - _a); -} - -inline const ::flatbuffers::TypeTable *TestEnumTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_CHAR, 0, 0 }, - { ::flatbuffers::ET_CHAR, 0, 0 }, - { ::flatbuffers::ET_CHAR, 0, 0 } - }; - static const ::flatbuffers::TypeFunction type_refs[] = { - MyGame::Example::TestEnumTypeTable - }; - static const char * const names[] = { - "A", - "B", - "C" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names - }; - return &tt; -} - -inline const ::flatbuffers::TypeTable *NestedStructTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_INT, 1, -1 }, - { ::flatbuffers::ET_CHAR, 0, 0 }, - { ::flatbuffers::ET_CHAR, 1, 0 }, - { ::flatbuffers::ET_LONG, 1, -1 } - }; - static const ::flatbuffers::TypeFunction type_refs[] = { - MyGame::Example::TestEnumTypeTable - }; - static const int16_t array_sizes[] = { 2, 2, 2, }; - static const int64_t values[] = { 0, 8, 9, 16, 32 }; - static const char * const names[] = { - "a", - "b", - "c", - "d" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_STRUCT, 4, type_codes, type_refs, array_sizes, values, names - }; - return &tt; -} - -inline const ::flatbuffers::TypeTable *ArrayStructTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_FLOAT, 0, -1 }, - { ::flatbuffers::ET_INT, 1, -1 }, - { ::flatbuffers::ET_CHAR, 0, -1 }, - { ::flatbuffers::ET_SEQUENCE, 1, 0 }, - { ::flatbuffers::ET_INT, 0, -1 }, - { ::flatbuffers::ET_LONG, 1, -1 } - }; - static const ::flatbuffers::TypeFunction type_refs[] = { - MyGame::Example::NestedStructTypeTable - }; - static const int16_t array_sizes[] = { 15, 2, 2, }; - static const int64_t values[] = { 0, 4, 64, 72, 136, 144, 160 }; - static const char * const names[] = { - "a", - "b", - "c", - "d", - "e", - "f" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_STRUCT, 6, type_codes, type_refs, array_sizes, values, names - }; - return &tt; -} - -inline const ::flatbuffers::TypeTable *ArrayTableTypeTable() { - static const ::flatbuffers::TypeCode type_codes[] = { - { ::flatbuffers::ET_SEQUENCE, 0, 0 } - }; - static const ::flatbuffers::TypeFunction type_refs[] = { - MyGame::Example::ArrayStructTypeTable - }; - static const char * const names[] = { - "a" - }; - static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names - }; - return &tt; -} - -inline const MyGame::Example::ArrayTable *GetArrayTable(const void *buf) { - return ::flatbuffers::GetRoot(buf); -} - -inline const MyGame::Example::ArrayTable *GetSizePrefixedArrayTable(const void *buf) { - return ::flatbuffers::GetSizePrefixedRoot(buf); -} - -inline ArrayTable *GetMutableArrayTable(void *buf) { - return ::flatbuffers::GetMutableRoot(buf); -} - -inline MyGame::Example::ArrayTable *GetMutableSizePrefixedArrayTable(void *buf) { - return ::flatbuffers::GetMutableSizePrefixedRoot(buf); -} - -inline const char *ArrayTableIdentifier() { - return "ARRT"; -} - -inline bool ArrayTableBufferHasIdentifier(const void *buf) { - return ::flatbuffers::BufferHasIdentifier( - buf, ArrayTableIdentifier()); -} - -inline bool SizePrefixedArrayTableBufferHasIdentifier(const void *buf) { - return ::flatbuffers::BufferHasIdentifier( - buf, ArrayTableIdentifier(), true); -} - -inline bool VerifyArrayTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(ArrayTableIdentifier()); -} - -inline bool VerifySizePrefixedArrayTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(ArrayTableIdentifier()); -} - -inline const char *ArrayTableExtension() { - return "mon"; -} - -inline void FinishArrayTableBuffer( - ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { - fbb.Finish(root, ArrayTableIdentifier()); -} - -inline void FinishSizePrefixedArrayTableBuffer( - ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { - fbb.FinishSizePrefixed(root, ArrayTableIdentifier()); -} - -inline std::unique_ptr UnPackArrayTable( - const void *buf, - const ::flatbuffers::resolver_function_t *res = nullptr) { - return std::unique_ptr(GetArrayTable(buf)->UnPack(res)); -} - -inline std::unique_ptr UnPackSizePrefixedArrayTable( - const void *buf, - const ::flatbuffers::resolver_function_t *res = nullptr) { - return std::unique_ptr(GetSizePrefixedArrayTable(buf)->UnPack(res)); -} - -} // namespace Example -} // namespace MyGame - -#endif // FLATBUFFERS_GENERATED_ARRAYSTEST_MYGAME_EXAMPLE_H_ From cbc8872b99a55a66900e9821ac8f9f54c4fb1064 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 12 May 2023 17:11:18 -0700 Subject: [PATCH 22/35] fix Mac build about gen sources and multiple targets --- CMakeLists.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bdabaf45f50..74f59661317 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,7 +247,6 @@ set(FlatBuffers_Tests_CPP17_SRCS ) set(FlatBuffers_Sample_Binary_SRCS - include/flatbuffers/flatbuffers.h samples/sample_binary.cpp ) @@ -510,9 +509,7 @@ endfunction() function(compile_schema_for_samples SRC_FBS OPT) compile_schema("${SRC_FBS}" "${OPT}" GEN_FILE) - target_sources(flatsamplebinary PRIVATE ${GEN_FILE}) - target_sources(flatsampletext PRIVATE ${GEN_FILE}) - target_sources(flatsamplebfbs PRIVATE ${GEN_FILE}) + target_sources(sample_lib PRIVATE ${GEN_FILE}) endfunction() if(FLATBUFFERS_BUILD_TESTS) @@ -553,13 +550,20 @@ if(FLATBUFFERS_BUILD_TESTS) add_executable(flatsamplebinary ${FlatBuffers_Sample_Binary_SRCS}) add_executable(flatsampletext ${FlatBuffers_Sample_Text_SRCS}) add_executable(flatsamplebfbs ${FlatBuffers_Sample_BFBS_SRCS}) - - target_link_libraries(flatsamplebinary PRIVATE $) - target_link_libraries(flatsampletext PRIVATE $) - target_link_libraries(flatsamplebfbs PRIVATE $) + # Add a library so there is a single target that the generated samples can + # link too. + add_library(sample_lib STATIC) + + # Since sample_lib has no sources, we have to explicitly set the linker lang. + set_target_properties(sample_lib PROPERTIES LINKER_LANGUAGE CXX) + compile_schema_for_samples(samples/monster.fbs "${FLATC_OPT_COMP}") + target_link_libraries(flatsamplebinary PRIVATE $ sample_lib) + target_link_libraries(flatsampletext PRIVATE $ sample_lib) + target_link_libraries(flatsamplebfbs PRIVATE $ sample_lib) + if(FLATBUFFERS_BUILD_CPP17) add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS}) target_link_libraries(flattests_cpp17 PRIVATE $) From 17b9eed4e1e1bafbeb40c88b4e0ff180380fd332 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 12 May 2023 21:23:51 -0700 Subject: [PATCH 23/35] switch to interface library for flatsample --- CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 74f59661317..51b2c954112 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -509,7 +509,7 @@ endfunction() function(compile_schema_for_samples SRC_FBS OPT) compile_schema("${SRC_FBS}" "${OPT}" GEN_FILE) - target_sources(sample_lib PRIVATE ${GEN_FILE}) + target_sources(flatsample PRIVATE ${GEN_FILE}) endfunction() if(FLATBUFFERS_BUILD_TESTS) @@ -553,16 +553,16 @@ if(FLATBUFFERS_BUILD_TESTS) # Add a library so there is a single target that the generated samples can # link too. - add_library(sample_lib STATIC) + add_library(flatsample INTERFACE) - # Since sample_lib has no sources, we have to explicitly set the linker lang. - set_target_properties(sample_lib PROPERTIES LINKER_LANGUAGE CXX) + # Since flatsample has no sources, we have to explicitly set the linker lang. + set_target_properties(flatsample PROPERTIES LINKER_LANGUAGE CXX) compile_schema_for_samples(samples/monster.fbs "${FLATC_OPT_COMP}") - target_link_libraries(flatsamplebinary PRIVATE $ sample_lib) - target_link_libraries(flatsampletext PRIVATE $ sample_lib) - target_link_libraries(flatsamplebfbs PRIVATE $ sample_lib) + target_link_libraries(flatsamplebinary PRIVATE $ flatsample) + target_link_libraries(flatsampletext PRIVATE $ flatsample) + target_link_libraries(flatsamplebfbs PRIVATE $ flatsample) if(FLATBUFFERS_BUILD_CPP17) add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS}) From fe5e4c71c585dadc5badeb0a3d658f8a189e11d0 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 12 May 2023 21:49:33 -0700 Subject: [PATCH 24/35] remove flatbuffers tests from android (#7959) --- android/app/src/main/cpp/CMakeLists.txt | 1 - .../app/src/main/cpp/flatbuffers/CMakeLists.txt | 17 ----------------- 2 files changed, 18 deletions(-) diff --git a/android/app/src/main/cpp/CMakeLists.txt b/android/app/src/main/cpp/CMakeLists.txt index f30dd4a0af6..abb8250bda0 100644 --- a/android/app/src/main/cpp/CMakeLists.txt +++ b/android/app/src/main/cpp/CMakeLists.txt @@ -48,7 +48,6 @@ find_library( # Sets the name of the path variable. target_link_libraries( # Specifies the target library. native-lib flatbuffers - flatbuffers_tests # Links the target library to the log library # included in the NDK. ${log-lib} ) diff --git a/android/app/src/main/cpp/flatbuffers/CMakeLists.txt b/android/app/src/main/cpp/flatbuffers/CMakeLists.txt index ee927153257..144523ee85a 100644 --- a/android/app/src/main/cpp/flatbuffers/CMakeLists.txt +++ b/android/app/src/main/cpp/flatbuffers/CMakeLists.txt @@ -48,26 +48,9 @@ set(FlatBuffers_Library_SRCS ${FLATBUFFERS_SRC}/src/code_generators.cpp ) -set(FlatBuffers_Test_SRCS - ${FLATBUFFERS_SRC}/tests/test.cpp - ${FLATBUFFERS_SRC}/tests/test_assert.h - ${FLATBUFFERS_SRC}/tests/test_builder.h - ${FLATBUFFERS_SRC}/tests/test_assert.cpp - ${FLATBUFFERS_SRC}/tests/test_builder.cpp - ${FLATBUFFERS_SRC}/tests/native_type_test_impl.h - ${FLATBUFFERS_SRC}/tests/native_type_test_impl.cpp -) - add_library( # Sets the name of the library. flatbuffers ${FlatBuffers_Library_SRCS} - ${FlatBuffers_Test_SRCS} ${Generated_SRCS} ) - -add_library( # Sets the name of the library. - flatbuffers_tests - - ${FlatBuffers_Test_SRCS} -) From 1d3afb90c513f191e7a540d6bddd2abdf2bb1f9b Mon Sep 17 00:00:00 2001 From: sssooonnnggg Date: Mon, 15 May 2023 12:22:38 +0800 Subject: [PATCH 25/35] feat(C++): Support underlying_type for union (#7954) * feat(C++): support underlying type for union * chore: add conform checks for underlying type changes --- CMakeLists.txt | 1 + include/flatbuffers/idl.h | 1 + src/idl_gen_cpp.cpp | 14 +- src/idl_parser.cpp | 54 +- tests/BUILD.bazel | 1 + tests/evolution_test.cpp | 7 + tests/parser_test.cpp | 9 + tests/test.cpp | 37 + tests/union_underlying_type_test.fbs | 17 + tests/union_underlying_type_test_generated.h | 880 +++++++++++++++++++ 10 files changed, 1004 insertions(+), 17 deletions(-) create mode 100644 tests/union_underlying_type_test.fbs create mode 100644 tests/union_underlying_type_test_generated.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 51b2c954112..a895a340e33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -540,6 +540,7 @@ if(FLATBUFFERS_BUILD_TESTS) compile_schema_for_test(tests/64bit/test_64bit.fbs "${FLATC_OPT_COMP};--bfbs-gen-embed") compile_schema_for_test(tests/64bit/evolution/v1.fbs "${FLATC_OPT_COMP}") compile_schema_for_test(tests/64bit/evolution/v2.fbs "${FLATC_OPT_COMP}") + compile_schema_for_test(tests/union_underlying_type_test.fbs "${FLATC_OPT_COMP}") if(FLATBUFFERS_CODE_SANITIZE) add_fsanitize_to_target(flattests ${FLATBUFFERS_CODE_SANITIZE}) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index e1008a73c59..ad45d3115dc 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -1151,6 +1151,7 @@ class Parser : public ParserState { bool SupportsOptionalScalars() const; bool SupportsDefaultVectorsAndStrings() const; bool Supports64BitOffsets() const; + bool SupportsUnionUnderlyingType() const; Namespace *UniqueNamespace(Namespace *ns); FLATBUFFERS_CHECKED_ERROR RecurseError(); diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 39ab826eb82..ff8382beaae 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -779,7 +779,12 @@ class CppGenerator : public BaseGenerator { if (type.enum_def) return WrapInNameSpace(*type.enum_def); if (type.base_type == BASE_TYPE_BOOL) return "bool"; } - return StringOf(type.base_type); + // Get real underlying type for union type + auto base_type = type.base_type; + if (type.base_type == BASE_TYPE_UTYPE && type.enum_def != nullptr) { + base_type = type.enum_def->underlying_type.base_type; + } + return StringOf(base_type); } // Return a C++ pointer type, specialized to the actual struct/table types, @@ -1048,7 +1053,7 @@ class CppGenerator : public BaseGenerator { std::string UnionVectorVerifySignature(const EnumDef &enum_def) { const std::string name = Name(enum_def); - const std::string &type = opts_.scoped_enums ? name : "uint8_t"; + const std::string &type = opts_.scoped_enums ? name : GenTypeBasic(enum_def.underlying_type, false); return "bool Verify" + name + "Vector" + "(::flatbuffers::Verifier &verifier, " + "const ::flatbuffers::Vector<::flatbuffers::Offset> " @@ -3496,12 +3501,13 @@ class CppGenerator : public BaseGenerator { } case BASE_TYPE_UTYPE: { value = StripUnionType(value); + auto underlying_type = GenTypeBasic(vector_type, false); const std::string &type = opts_.scoped_enums ? Name(*field.value.type.enum_def) - : "uint8_t"; + : underlying_type; auto enum_value = "__va->_" + value + "[i].type"; if (!opts_.scoped_enums) - enum_value = "static_cast(" + enum_value + ")"; + enum_value = "static_cast<" + underlying_type + ">(" + enum_value + ")"; code += "_fbb.CreateVector<" + type + ">(" + value + ".size(), [](size_t i, _VectorArgs *__va) { return " + diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index fe1d639867f..4df4558ce95 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -947,8 +947,12 @@ CheckedError Parser::ParseField(StructDef &struct_def) { if (type.base_type == BASE_TYPE_UNION) { // For union fields, add a second auto-generated field to hold the type, // with a special suffix. - ECHECK(AddField(struct_def, name + UnionTypeFieldSuffix(), - type.enum_def->underlying_type, &typefield)); + + // To ensure compatibility with many codes that rely on the BASE_TYPE_UTYPE value to identify union type fields. + Type union_type(type.enum_def->underlying_type); + union_type.base_type = BASE_TYPE_UTYPE; + ECHECK(AddField(struct_def, name + UnionTypeFieldSuffix(),union_type, &typefield)); + } else if (IsVector(type) && type.element == BASE_TYPE_UNION) { advanced_features_ |= reflection::AdvancedUnionFeatures; // Only cpp, js and ts supports the union vector feature so far. @@ -2482,23 +2486,39 @@ CheckedError Parser::ParseEnum(const bool is_union, EnumDef **dest, &GetPooledString(RelativeToRootPath(opts.project_root, filename)); } enum_def->doc_comment = enum_comment; - if (!is_union && !opts.proto_mode) { + if (!opts.proto_mode) { // Give specialized error message, since this type spec used to // be optional in the first FlatBuffers release. + bool explicit_underlying_type = false; if (!Is(':')) { - return Error( - "must specify the underlying integer type for this" - " enum (e.g. \': short\', which was the default)."); + // Enum is forced to have an explicit underlying type in declaration. + if (!is_union) { + return Error( + "must specify the underlying integer type for this" + " enum (e.g. \': short\', which was the default)."); + } } else { + // Union underlying type is only supported for cpp + if (is_union && !SupportsUnionUnderlyingType()) { + return Error( + "Underlying type for union is not yet supported in at least one of " + "the specified programming languages."); + } NEXT(); + explicit_underlying_type = true; } - // Specify the integer type underlying this enum. - ECHECK(ParseType(enum_def->underlying_type)); - if (!IsInteger(enum_def->underlying_type.base_type) || - IsBool(enum_def->underlying_type.base_type)) - return Error("underlying enum type must be integral"); - // Make this type refer back to the enum it was derived from. - enum_def->underlying_type.enum_def = enum_def; + + if (explicit_underlying_type) { + // Specify the integer type underlying this enum. + ECHECK(ParseType(enum_def->underlying_type)); + if (!IsInteger(enum_def->underlying_type.base_type) || IsBool(enum_def->underlying_type.base_type)) { + return Error("underlying " + std::string(is_union ? "union" : "enum") + "type must be integral"); + } + + // Make this type refer back to the enum it was derived from. + enum_def->underlying_type.enum_def = enum_def; + } + } ECHECK(ParseMetaData(&enum_def->attributes)); const auto underlying_type = enum_def->underlying_type.base_type; @@ -2697,6 +2717,10 @@ bool Parser::Supports64BitOffsets() const { ~(IDLOptions::kCpp | IDLOptions::kJson | IDLOptions::kBinary)) == 0; } +bool Parser::SupportsUnionUnderlyingType() const { + return (opts.lang_to_generate & ~IDLOptions::kCpp) == 0; +} + Namespace *Parser::UniqueNamespace(Namespace *ns) { for (auto it = namespaces_.begin(); it != namespaces_.end(); ++it) { if (ns->components == (*it)->components) { @@ -4428,6 +4452,10 @@ std::string Parser::ConformTo(const Parser &base) { return "values differ for enum: " + enum_val.name; } } + // Check underlying type changes + if (enum_def_base->underlying_type.base_type != enum_def.underlying_type.base_type) { + return "underlying type differ for " + std::string(enum_def.is_union ? "union: " : "enum: ") + qualified_name; + } } return ""; } diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index c723eb81b7f..f306f7ec82f 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -65,6 +65,7 @@ cc_test( "test_assert.h", "test_builder.cpp", "test_builder.h", + "union_underlying_type_test_generated.h", "union_vector/union_vector_generated.h", "util_test.cpp", "util_test.h", diff --git a/tests/evolution_test.cpp b/tests/evolution_test.cpp index 6ed2f57459e..51c2e8131e2 100644 --- a/tests/evolution_test.cpp +++ b/tests/evolution_test.cpp @@ -111,6 +111,13 @@ void ConformTest() { test_conform(ref2, "enum E:int32 { A } table T2 { df:byte; f:E; }", "field renamed to different type: T2.df (renamed from T2.f)"); + // Check enum underlying type changes. + test_conform("enum E:int32 {A}", "enum E: byte {A}", "underlying type differ for enum: E"); + + // Check union underlying type changes. + const char ref3[] = "table A {} table B {} union C {A, B}"; + test_conform(ref3, "table A {} table B {} union C:int32 {A, B}", "underlying type differ for union: C"); + // Check conformity for Offset64-related changes. { const char ref[] = "table T { a:[uint8]; b:string; }"; diff --git a/tests/parser_test.cpp b/tests/parser_test.cpp index 085c2fe08c3..d63c0b180e4 100644 --- a/tests/parser_test.cpp +++ b/tests/parser_test.cpp @@ -841,6 +841,15 @@ void ParseUnionTest() { "table B { e:U; } root_type B;" "{ e_type: N_A, e: {} }"), true); + + // Test union underlying type + const char *source = "table A {} table B {} union U : int {A, B} table C {test_union: U; test_vector_of_union: [U];}"; + flatbuffers::Parser parser3; + parser3.opts.lang_to_generate = flatbuffers::IDLOptions::kCpp; + TEST_EQ(parser3.Parse(source), true); + + parser3.opts.lang_to_generate &= flatbuffers::IDLOptions::kJava; + TEST_EQ(parser3.Parse(source), false); } void ValidSameNameDifferentNamespaceTest() { diff --git a/tests/test.cpp b/tests/test.cpp index 5d48389395e..f26b1adf29a 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -39,6 +39,7 @@ #include "proto_test.h" #include "reflection_test.h" #include "union_vector/union_vector_generated.h" +#include "union_underlying_type_test_generated.h" #if !defined(_MSC_VER) || _MSC_VER >= 1700 # include "arrays_test_generated.h" #endif @@ -1540,6 +1541,41 @@ void DoNotRequireEofTest(const std::string &tests_data_path) { } #endif +void UnionUnderlyingTypeTest() { + using namespace UnionUnderlyingType; + TEST_ASSERT(sizeof(ABC) == sizeof(uint32_t)); + TEST_ASSERT(ABC::ABC_A == 555); + TEST_ASSERT(ABC::ABC_B == 666); + TEST_ASSERT(ABC::ABC_C == 777); + + DT buffer; + AT a; + a.a = 42; + BT b; + b.b = "foo"; + CT c; + c.c = true; + buffer.test_union = ABCUnion(); + buffer.test_union.Set(a); + buffer.test_vector_of_union.resize(3); + buffer.test_vector_of_union[0].Set(a); + buffer.test_vector_of_union[1].Set(b); + buffer.test_vector_of_union[2].Set(c); + + flatbuffers::FlatBufferBuilder fbb; + auto offset = D::Pack(fbb, &buffer); + fbb.Finish(offset); + + auto *root = + flatbuffers::GetRoot(fbb.GetBufferPointer()); + DT unpacked; + root->UnPackTo(&unpacked); + + TEST_ASSERT(unpacked.test_union == buffer.test_union); + TEST_ASSERT(unpacked.test_vector_of_union == buffer.test_vector_of_union); + +} + static void Offset64Tests() { Offset64Test(); Offset64SerializedFirst(); @@ -1663,6 +1699,7 @@ int FlatBufferTests(const std::string &tests_data_path) { FixedSizedStructArrayKeyInStructTest(); EmbeddedSchemaAccess(); Offset64Tests(); + UnionUnderlyingTypeTest(); return 0; } } // namespace diff --git a/tests/union_underlying_type_test.fbs b/tests/union_underlying_type_test.fbs new file mode 100644 index 00000000000..2f4ed12e2d6 --- /dev/null +++ b/tests/union_underlying_type_test.fbs @@ -0,0 +1,17 @@ + +namespace UnionUnderlyingType; + +table A { + a: int; +} +table B { + b: string; +} +table C { + c: bool; +} +union ABC: int { A = 555, B = 666, C = 777} +table D { + test_union: ABC; + test_vector_of_union: [ABC]; +} diff --git a/tests/union_underlying_type_test_generated.h b/tests/union_underlying_type_test_generated.h new file mode 100644 index 00000000000..f70af50a432 --- /dev/null +++ b/tests/union_underlying_type_test_generated.h @@ -0,0 +1,880 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_UNIONUNDERLYINGTYPETEST_UNIONUNDERLYINGTYPE_H_ +#define FLATBUFFERS_GENERATED_UNIONUNDERLYINGTYPETEST_UNIONUNDERLYINGTYPE_H_ + +#include "flatbuffers/flatbuffers.h" + +// Ensure the included flatbuffers.h is the same version as when this file was +// generated, otherwise it may not be compatible. +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 9, + "Non-compatible flatbuffers version included"); + +namespace UnionUnderlyingType { + +struct A; +struct ABuilder; +struct AT; + +struct B; +struct BBuilder; +struct BT; + +struct C; +struct CBuilder; +struct CT; + +struct D; +struct DBuilder; +struct DT; + +bool operator==(const AT &lhs, const AT &rhs); +bool operator!=(const AT &lhs, const AT &rhs); +bool operator==(const BT &lhs, const BT &rhs); +bool operator!=(const BT &lhs, const BT &rhs); +bool operator==(const CT &lhs, const CT &rhs); +bool operator!=(const CT &lhs, const CT &rhs); +bool operator==(const DT &lhs, const DT &rhs); +bool operator!=(const DT &lhs, const DT &rhs); + +inline const ::flatbuffers::TypeTable *ATypeTable(); + +inline const ::flatbuffers::TypeTable *BTypeTable(); + +inline const ::flatbuffers::TypeTable *CTypeTable(); + +inline const ::flatbuffers::TypeTable *DTypeTable(); + +enum ABC : int32_t { + ABC_NONE = 0, + ABC_A = 555, + ABC_B = 666, + ABC_C = 777, + ABC_MIN = ABC_NONE, + ABC_MAX = ABC_C +}; + +inline const ABC (&EnumValuesABC())[4] { + static const ABC values[] = { + ABC_NONE, + ABC_A, + ABC_B, + ABC_C + }; + return values; +} + +inline const char *EnumNameABC(ABC e) { + switch (e) { + case ABC_NONE: return "NONE"; + case ABC_A: return "A"; + case ABC_B: return "B"; + case ABC_C: return "C"; + default: return ""; + } +} + +template struct ABCTraits { + static const ABC enum_value = ABC_NONE; +}; + +template<> struct ABCTraits { + static const ABC enum_value = ABC_A; +}; + +template<> struct ABCTraits { + static const ABC enum_value = ABC_B; +}; + +template<> struct ABCTraits { + static const ABC enum_value = ABC_C; +}; + +template struct ABCUnionTraits { + static const ABC enum_value = ABC_NONE; +}; + +template<> struct ABCUnionTraits { + static const ABC enum_value = ABC_A; +}; + +template<> struct ABCUnionTraits { + static const ABC enum_value = ABC_B; +}; + +template<> struct ABCUnionTraits { + static const ABC enum_value = ABC_C; +}; + +struct ABCUnion { + ABC type; + void *value; + + ABCUnion() : type(ABC_NONE), value(nullptr) {} + ABCUnion(ABCUnion&& u) FLATBUFFERS_NOEXCEPT : + type(ABC_NONE), value(nullptr) + { std::swap(type, u.type); std::swap(value, u.value); } + ABCUnion(const ABCUnion &); + ABCUnion &operator=(const ABCUnion &u) + { ABCUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; } + ABCUnion &operator=(ABCUnion &&u) FLATBUFFERS_NOEXCEPT + { std::swap(type, u.type); std::swap(value, u.value); return *this; } + ~ABCUnion() { Reset(); } + + void Reset(); + + template + void Set(T&& val) { + typedef typename std::remove_reference::type RT; + Reset(); + type = ABCUnionTraits::enum_value; + if (type != ABC_NONE) { + value = new RT(std::forward(val)); + } + } + + static void *UnPack(const void *obj, ABC type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + + UnionUnderlyingType::AT *AsA() { + return type == ABC_A ? + reinterpret_cast(value) : nullptr; + } + const UnionUnderlyingType::AT *AsA() const { + return type == ABC_A ? + reinterpret_cast(value) : nullptr; + } + UnionUnderlyingType::BT *AsB() { + return type == ABC_B ? + reinterpret_cast(value) : nullptr; + } + const UnionUnderlyingType::BT *AsB() const { + return type == ABC_B ? + reinterpret_cast(value) : nullptr; + } + UnionUnderlyingType::CT *AsC() { + return type == ABC_C ? + reinterpret_cast(value) : nullptr; + } + const UnionUnderlyingType::CT *AsC() const { + return type == ABC_C ? + reinterpret_cast(value) : nullptr; + } +}; + + +inline bool operator==(const ABCUnion &lhs, const ABCUnion &rhs) { + if (lhs.type != rhs.type) return false; + switch (lhs.type) { + case ABC_NONE: { + return true; + } + case ABC_A: { + return *(reinterpret_cast(lhs.value)) == + *(reinterpret_cast(rhs.value)); + } + case ABC_B: { + return *(reinterpret_cast(lhs.value)) == + *(reinterpret_cast(rhs.value)); + } + case ABC_C: { + return *(reinterpret_cast(lhs.value)) == + *(reinterpret_cast(rhs.value)); + } + default: { + return false; + } + } +} + +inline bool operator!=(const ABCUnion &lhs, const ABCUnion &rhs) { + return !(lhs == rhs); +} + +bool VerifyABC(::flatbuffers::Verifier &verifier, const void *obj, ABC type); +bool VerifyABCVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); + +struct AT : public ::flatbuffers::NativeTable { + typedef A TableType; + int32_t a = 0; +}; + +struct A FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef AT NativeTableType; + typedef ABuilder Builder; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return ATypeTable(); + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_A = 4 + }; + int32_t a() const { + return GetField(VT_A, 0); + } + bool mutate_a(int32_t _a = 0) { + return SetField(VT_A, _a, 0); + } + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_A, 4) && + verifier.EndTable(); + } + AT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(AT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct ABuilder { + typedef A Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_a(int32_t a) { + fbb_.AddElement(A::VT_A, a, 0); + } + explicit ABuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + return o; + } +}; + +inline ::flatbuffers::Offset CreateA( + ::flatbuffers::FlatBufferBuilder &_fbb, + int32_t a = 0) { + ABuilder builder_(_fbb); + builder_.add_a(a); + return builder_.Finish(); +} + +::flatbuffers::Offset CreateA(::flatbuffers::FlatBufferBuilder &_fbb, const AT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + +struct BT : public ::flatbuffers::NativeTable { + typedef B TableType; + std::string b{}; +}; + +struct B FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef BT NativeTableType; + typedef BBuilder Builder; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return BTypeTable(); + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_B = 4 + }; + const ::flatbuffers::String *b() const { + return GetPointer(VT_B); + } + ::flatbuffers::String *mutable_b() { + return GetPointer<::flatbuffers::String *>(VT_B); + } + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_B) && + verifier.VerifyString(b()) && + verifier.EndTable(); + } + BT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(BT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const BT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct BBuilder { + typedef B Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_b(::flatbuffers::Offset<::flatbuffers::String> b) { + fbb_.AddOffset(B::VT_B, b); + } + explicit BBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + return o; + } +}; + +inline ::flatbuffers::Offset CreateB( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> b = 0) { + BBuilder builder_(_fbb); + builder_.add_b(b); + return builder_.Finish(); +} + +inline ::flatbuffers::Offset CreateBDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, + const char *b = nullptr) { + auto b__ = b ? _fbb.CreateString(b) : 0; + return UnionUnderlyingType::CreateB( + _fbb, + b__); +} + +::flatbuffers::Offset CreateB(::flatbuffers::FlatBufferBuilder &_fbb, const BT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + +struct CT : public ::flatbuffers::NativeTable { + typedef C TableType; + bool c = false; +}; + +struct C FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef CT NativeTableType; + typedef CBuilder Builder; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return CTypeTable(); + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_C = 4 + }; + bool c() const { + return GetField(VT_C, 0) != 0; + } + bool mutate_c(bool _c = 0) { + return SetField(VT_C, static_cast(_c), 0); + } + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_C, 1) && + verifier.EndTable(); + } + CT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(CT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const CT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct CBuilder { + typedef C Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_c(bool c) { + fbb_.AddElement(C::VT_C, static_cast(c), 0); + } + explicit CBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + return o; + } +}; + +inline ::flatbuffers::Offset CreateC( + ::flatbuffers::FlatBufferBuilder &_fbb, + bool c = false) { + CBuilder builder_(_fbb); + builder_.add_c(c); + return builder_.Finish(); +} + +::flatbuffers::Offset CreateC(::flatbuffers::FlatBufferBuilder &_fbb, const CT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + +struct DT : public ::flatbuffers::NativeTable { + typedef D TableType; + UnionUnderlyingType::ABCUnion test_union{}; + std::vector test_vector_of_union{}; +}; + +struct D FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef DT NativeTableType; + typedef DBuilder Builder; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return DTypeTable(); + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TEST_UNION_TYPE = 4, + VT_TEST_UNION = 6, + VT_TEST_VECTOR_OF_UNION_TYPE = 8, + VT_TEST_VECTOR_OF_UNION = 10 + }; + UnionUnderlyingType::ABC test_union_type() const { + return static_cast(GetField(VT_TEST_UNION_TYPE, 0)); + } + const void *test_union() const { + return GetPointer(VT_TEST_UNION); + } + template const T *test_union_as() const; + const UnionUnderlyingType::A *test_union_as_A() const { + return test_union_type() == UnionUnderlyingType::ABC_A ? static_cast(test_union()) : nullptr; + } + const UnionUnderlyingType::B *test_union_as_B() const { + return test_union_type() == UnionUnderlyingType::ABC_B ? static_cast(test_union()) : nullptr; + } + const UnionUnderlyingType::C *test_union_as_C() const { + return test_union_type() == UnionUnderlyingType::ABC_C ? static_cast(test_union()) : nullptr; + } + void *mutable_test_union() { + return GetPointer(VT_TEST_UNION); + } + const ::flatbuffers::Vector *test_vector_of_union_type() const { + return GetPointer *>(VT_TEST_VECTOR_OF_UNION_TYPE); + } + ::flatbuffers::Vector *mutable_test_vector_of_union_type() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST_VECTOR_OF_UNION_TYPE); + } + const ::flatbuffers::Vector<::flatbuffers::Offset> *test_vector_of_union() const { + return GetPointer> *>(VT_TEST_VECTOR_OF_UNION); + } + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_test_vector_of_union() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TEST_VECTOR_OF_UNION); + } + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_TEST_UNION_TYPE, 1) && + VerifyOffset(verifier, VT_TEST_UNION) && + VerifyABC(verifier, test_union(), test_union_type()) && + VerifyOffset(verifier, VT_TEST_VECTOR_OF_UNION_TYPE) && + verifier.VerifyVector(test_vector_of_union_type()) && + VerifyOffset(verifier, VT_TEST_VECTOR_OF_UNION) && + verifier.VerifyVector(test_vector_of_union()) && + VerifyABCVector(verifier, test_vector_of_union(), test_vector_of_union_type()) && + verifier.EndTable(); + } + DT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(DT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const DT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +template<> inline const UnionUnderlyingType::A *D::test_union_as() const { + return test_union_as_A(); +} + +template<> inline const UnionUnderlyingType::B *D::test_union_as() const { + return test_union_as_B(); +} + +template<> inline const UnionUnderlyingType::C *D::test_union_as() const { + return test_union_as_C(); +} + +struct DBuilder { + typedef D Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_test_union_type(UnionUnderlyingType::ABC test_union_type) { + fbb_.AddElement(D::VT_TEST_UNION_TYPE, static_cast(test_union_type), 0); + } + void add_test_union(::flatbuffers::Offset test_union) { + fbb_.AddOffset(D::VT_TEST_UNION, test_union); + } + void add_test_vector_of_union_type(::flatbuffers::Offset<::flatbuffers::Vector> test_vector_of_union_type) { + fbb_.AddOffset(D::VT_TEST_VECTOR_OF_UNION_TYPE, test_vector_of_union_type); + } + void add_test_vector_of_union(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> test_vector_of_union) { + fbb_.AddOffset(D::VT_TEST_VECTOR_OF_UNION, test_vector_of_union); + } + explicit DBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + return o; + } +}; + +inline ::flatbuffers::Offset CreateD( + ::flatbuffers::FlatBufferBuilder &_fbb, + UnionUnderlyingType::ABC test_union_type = UnionUnderlyingType::ABC_NONE, + ::flatbuffers::Offset test_union = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test_vector_of_union_type = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> test_vector_of_union = 0) { + DBuilder builder_(_fbb); + builder_.add_test_vector_of_union(test_vector_of_union); + builder_.add_test_vector_of_union_type(test_vector_of_union_type); + builder_.add_test_union(test_union); + builder_.add_test_union_type(test_union_type); + return builder_.Finish(); +} + +inline ::flatbuffers::Offset CreateDDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, + UnionUnderlyingType::ABC test_union_type = UnionUnderlyingType::ABC_NONE, + ::flatbuffers::Offset test_union = 0, + const std::vector *test_vector_of_union_type = nullptr, + const std::vector<::flatbuffers::Offset> *test_vector_of_union = nullptr) { + auto test_vector_of_union_type__ = test_vector_of_union_type ? _fbb.CreateVector(*test_vector_of_union_type) : 0; + auto test_vector_of_union__ = test_vector_of_union ? _fbb.CreateVector<::flatbuffers::Offset>(*test_vector_of_union) : 0; + return UnionUnderlyingType::CreateD( + _fbb, + test_union_type, + test_union, + test_vector_of_union_type__, + test_vector_of_union__); +} + +::flatbuffers::Offset CreateD(::flatbuffers::FlatBufferBuilder &_fbb, const DT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + + +inline bool operator==(const AT &lhs, const AT &rhs) { + return + (lhs.a == rhs.a); +} + +inline bool operator!=(const AT &lhs, const AT &rhs) { + return !(lhs == rhs); +} + + +inline AT *A::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new AT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void A::UnPackTo(AT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = a(); _o->a = _e; } +} + +inline ::flatbuffers::Offset A::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return CreateA(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset CreateA(::flatbuffers::FlatBufferBuilder &_fbb, const AT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _a = _o->a; + return UnionUnderlyingType::CreateA( + _fbb, + _a); +} + + +inline bool operator==(const BT &lhs, const BT &rhs) { + return + (lhs.b == rhs.b); +} + +inline bool operator!=(const BT &lhs, const BT &rhs) { + return !(lhs == rhs); +} + + +inline BT *B::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new BT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void B::UnPackTo(BT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = b(); if (_e) _o->b = _e->str(); } +} + +inline ::flatbuffers::Offset B::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const BT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return CreateB(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset CreateB(::flatbuffers::FlatBufferBuilder &_fbb, const BT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const BT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _b = _o->b.empty() ? 0 : _fbb.CreateString(_o->b); + return UnionUnderlyingType::CreateB( + _fbb, + _b); +} + + +inline bool operator==(const CT &lhs, const CT &rhs) { + return + (lhs.c == rhs.c); +} + +inline bool operator!=(const CT &lhs, const CT &rhs) { + return !(lhs == rhs); +} + + +inline CT *C::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new CT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void C::UnPackTo(CT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = c(); _o->c = _e; } +} + +inline ::flatbuffers::Offset C::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const CT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return CreateC(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset CreateC(::flatbuffers::FlatBufferBuilder &_fbb, const CT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const CT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _c = _o->c; + return UnionUnderlyingType::CreateC( + _fbb, + _c); +} + + +inline bool operator==(const DT &lhs, const DT &rhs) { + return + (lhs.test_union == rhs.test_union) && + (lhs.test_vector_of_union == rhs.test_vector_of_union); +} + +inline bool operator!=(const DT &lhs, const DT &rhs) { + return !(lhs == rhs); +} + + +inline DT *D::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr
(new DT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void D::UnPackTo(DT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = test_union_type(); _o->test_union.type = _e; } + { auto _e = test_union(); if (_e) _o->test_union.value = UnionUnderlyingType::ABCUnion::UnPack(_e, test_union_type(), _resolver); } + { auto _e = test_vector_of_union_type(); if (_e) { _o->test_vector_of_union.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test_vector_of_union[_i].type = static_cast(_e->Get(_i)); } } else { _o->test_vector_of_union.resize(0); } } + { auto _e = test_vector_of_union(); if (_e) { _o->test_vector_of_union.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test_vector_of_union[_i].value = UnionUnderlyingType::ABCUnion::UnPack(_e->Get(_i), test_vector_of_union_type()->GetEnum(_i), _resolver); } } else { _o->test_vector_of_union.resize(0); } } +} + +inline ::flatbuffers::Offset D::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const DT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return CreateD(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset CreateD(::flatbuffers::FlatBufferBuilder &_fbb, const DT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const DT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _test_union_type = _o->test_union.type; + auto _test_union = _o->test_union.Pack(_fbb); + auto _test_vector_of_union_type = _o->test_vector_of_union.size() ? _fbb.CreateVector(_o->test_vector_of_union.size(), [](size_t i, _VectorArgs *__va) { return static_cast(__va->__o->test_vector_of_union[i].type); }, &_va) : 0; + auto _test_vector_of_union = _o->test_vector_of_union.size() ? _fbb.CreateVector<::flatbuffers::Offset>(_o->test_vector_of_union.size(), [](size_t i, _VectorArgs *__va) { return __va->__o->test_vector_of_union[i].Pack(*__va->__fbb, __va->__rehasher); }, &_va) : 0; + return UnionUnderlyingType::CreateD( + _fbb, + _test_union_type, + _test_union, + _test_vector_of_union_type, + _test_vector_of_union); +} + +inline bool VerifyABC(::flatbuffers::Verifier &verifier, const void *obj, ABC type) { + switch (type) { + case ABC_NONE: { + return true; + } + case ABC_A: { + auto ptr = reinterpret_cast(obj); + return verifier.VerifyTable(ptr); + } + case ABC_B: { + auto ptr = reinterpret_cast(obj); + return verifier.VerifyTable(ptr); + } + case ABC_C: { + auto ptr = reinterpret_cast(obj); + return verifier.VerifyTable(ptr); + } + default: return true; + } +} + +inline bool VerifyABCVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { + if (!values || !types) return !values && !types; + if (values->size() != types->size()) return false; + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + if (!VerifyABC( + verifier, values->Get(i), types->GetEnum(i))) { + return false; + } + } + return true; +} + +inline void *ABCUnion::UnPack(const void *obj, ABC type, const ::flatbuffers::resolver_function_t *resolver) { + (void)resolver; + switch (type) { + case ABC_A: { + auto ptr = reinterpret_cast(obj); + return ptr->UnPack(resolver); + } + case ABC_B: { + auto ptr = reinterpret_cast(obj); + return ptr->UnPack(resolver); + } + case ABC_C: { + auto ptr = reinterpret_cast(obj); + return ptr->UnPack(resolver); + } + default: return nullptr; + } +} + +inline ::flatbuffers::Offset ABCUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { + (void)_rehasher; + switch (type) { + case ABC_A: { + auto ptr = reinterpret_cast(value); + return CreateA(_fbb, ptr, _rehasher).Union(); + } + case ABC_B: { + auto ptr = reinterpret_cast(value); + return CreateB(_fbb, ptr, _rehasher).Union(); + } + case ABC_C: { + auto ptr = reinterpret_cast(value); + return CreateC(_fbb, ptr, _rehasher).Union(); + } + default: return 0; + } +} + +inline ABCUnion::ABCUnion(const ABCUnion &u) : type(u.type), value(nullptr) { + switch (type) { + case ABC_A: { + value = new UnionUnderlyingType::AT(*reinterpret_cast(u.value)); + break; + } + case ABC_B: { + value = new UnionUnderlyingType::BT(*reinterpret_cast(u.value)); + break; + } + case ABC_C: { + value = new UnionUnderlyingType::CT(*reinterpret_cast(u.value)); + break; + } + default: + break; + } +} + +inline void ABCUnion::Reset() { + switch (type) { + case ABC_A: { + auto ptr = reinterpret_cast(value); + delete ptr; + break; + } + case ABC_B: { + auto ptr = reinterpret_cast(value); + delete ptr; + break; + } + case ABC_C: { + auto ptr = reinterpret_cast(value); + delete ptr; + break; + } + default: break; + } + value = nullptr; + type = ABC_NONE; +} + +inline const ::flatbuffers::TypeTable *ABCTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + UnionUnderlyingType::ATypeTable, + UnionUnderlyingType::BTypeTable, + UnionUnderlyingType::CTypeTable + }; + static const int64_t values[] = { 0, 555, 666, 777 }; + static const char * const names[] = { + "NONE", + "A", + "B", + "C" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *ATypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } + }; + static const char * const names[] = { + "a" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *BTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_STRING, 0, -1 } + }; + static const char * const names[] = { + "b" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *CTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_BOOL, 0, -1 } + }; + static const char * const names[] = { + "c" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *DTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UTYPE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_UTYPE, 1, 0 }, + { ::flatbuffers::ET_SEQUENCE, 1, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + UnionUnderlyingType::ABCTypeTable + }; + static const char * const names[] = { + "test_union_type", + "test_union", + "test_vector_of_union_type", + "test_vector_of_union" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, nullptr, names + }; + return &tt; +} + +} // namespace UnionUnderlyingType + +#endif // FLATBUFFERS_GENERATED_UNIONUNDERLYINGTYPETEST_UNIONUNDERLYINGTYPE_H_ From b128b802d9a97e66c53c57b5551f58f3e22828da Mon Sep 17 00:00:00 2001 From: sssooonnnggg Date: Tue, 16 May 2023 04:18:49 +0800 Subject: [PATCH 26/35] feat: Support union underlying type for TS/JS (#7961) --- src/idl_gen_ts.cpp | 27 +++++++++++++++---- src/idl_parser.cpp | 2 +- tests/parser_test.cpp | 2 +- tests/ts/JavaScriptUnionUnderlyingTypeTest.js | 26 ++++++++++++++++++ tests/ts/TypeScriptTest.py | 6 +++++ tests/ts/tsconfig.json | 3 ++- 6 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 tests/ts/JavaScriptUnionUnderlyingTypeTest.js diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index 7bee3f80148..acd2a4febec 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -408,7 +408,7 @@ class TsGenerator : public BaseGenerator { switch (type.base_type) { case BASE_TYPE_BOOL: case BASE_TYPE_CHAR: return "Int8"; - case BASE_TYPE_UTYPE: + case BASE_TYPE_UTYPE: return GenType(GetUnionUnderlyingType(type)); case BASE_TYPE_UCHAR: return "Uint8"; case BASE_TYPE_SHORT: return "Int16"; case BASE_TYPE_USHORT: return "Uint16"; @@ -562,11 +562,26 @@ class TsGenerator : public BaseGenerator { } } + static Type GetUnionUnderlyingType(const Type &type) + { + if (type.enum_def != nullptr && + type.enum_def->underlying_type.base_type != type.base_type) { + return type.enum_def->underlying_type; + } else { + return Type(BASE_TYPE_UCHAR); + } + } + + static Type GetUnderlyingVectorType(const Type &vector_type) + { + return (vector_type.base_type == BASE_TYPE_UTYPE) ? GetUnionUnderlyingType(vector_type) : vector_type; + } + // Returns the method name for use with add/put calls. std::string GenWriteMethod(const Type &type) { // Forward to signed versions since unsigned versions don't exist switch (type.base_type) { - case BASE_TYPE_UTYPE: + case BASE_TYPE_UTYPE: return GenWriteMethod(GetUnionUnderlyingType(type)); case BASE_TYPE_UCHAR: return GenWriteMethod(Type(BASE_TYPE_CHAR)); case BASE_TYPE_USHORT: return GenWriteMethod(Type(BASE_TYPE_SHORT)); case BASE_TYPE_UINT: return GenWriteMethod(Type(BASE_TYPE_INT)); @@ -1763,7 +1778,8 @@ class TsGenerator : public BaseGenerator { auto vectortype = field.value.type.VectorType(); auto vectortypename = GenTypeName(imports, struct_def, vectortype, false); - auto inline_size = InlineSize(vectortype); + auto type = GetUnderlyingVectorType(vectortype); + auto inline_size = InlineSize(type); auto index = GenBBAccess() + ".__vector(this.bb_pos + offset) + index" + MaybeScale(inline_size); @@ -1994,8 +2010,9 @@ class TsGenerator : public BaseGenerator { if (IsVector(field.value.type)) { auto vector_type = field.value.type.VectorType(); - auto alignment = InlineAlignment(vector_type); - auto elem_size = InlineSize(vector_type); + auto type = GetUnderlyingVectorType(vector_type); + auto alignment = InlineAlignment(type); + auto elem_size = InlineSize(type); // Generate a method to create a vector from a JavaScript array if (!IsStruct(vector_type)) { diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 4df4558ce95..2b401cf0c0b 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -2718,7 +2718,7 @@ bool Parser::Supports64BitOffsets() const { } bool Parser::SupportsUnionUnderlyingType() const { - return (opts.lang_to_generate & ~IDLOptions::kCpp) == 0; + return (opts.lang_to_generate & ~(IDLOptions::kCpp | IDLOptions::kTs)) == 0; } Namespace *Parser::UniqueNamespace(Namespace *ns) { diff --git a/tests/parser_test.cpp b/tests/parser_test.cpp index d63c0b180e4..33b1d6e1e6d 100644 --- a/tests/parser_test.cpp +++ b/tests/parser_test.cpp @@ -845,7 +845,7 @@ void ParseUnionTest() { // Test union underlying type const char *source = "table A {} table B {} union U : int {A, B} table C {test_union: U; test_vector_of_union: [U];}"; flatbuffers::Parser parser3; - parser3.opts.lang_to_generate = flatbuffers::IDLOptions::kCpp; + parser3.opts.lang_to_generate = flatbuffers::IDLOptions::kCpp | flatbuffers::IDLOptions::kTs; TEST_EQ(parser3.Parse(source), true); parser3.opts.lang_to_generate &= flatbuffers::IDLOptions::kJava; diff --git a/tests/ts/JavaScriptUnionUnderlyingTypeTest.js b/tests/ts/JavaScriptUnionUnderlyingTypeTest.js new file mode 100644 index 00000000000..6a324ca43ec --- /dev/null +++ b/tests/ts/JavaScriptUnionUnderlyingTypeTest.js @@ -0,0 +1,26 @@ +import assert from 'assert' +import * as flatbuffers from 'flatbuffers' +import {UnionUnderlyingType as Test} from './union_underlying_type_test.js' + +function main() { + let a = new Test.AT(); + a.a = 1; + let b = new Test.BT(); + b.b = "foo"; + let c = new Test.CT(); + c.c = true; + let d = new Test.DT(); + d.testUnionType = Test.ABC.A; + d.testUnion = a; + d.testVectorOfUnionType = [Test.ABC.A, Test.ABC.B, Test.ABC.C]; + d.testVectorOfUnion = [a, b, c]; + + let fbb = new flatbuffers.Builder(); + let offset = d.pack(fbb); + fbb.finish(offset); + + let unpacked = Test.D.getRootAsD(fbb.dataBuffer()).unpack(); + assert.equal(JSON.stringify(unpacked), JSON.stringify(d)); +} + +main() \ No newline at end of file diff --git a/tests/ts/TypeScriptTest.py b/tests/ts/TypeScriptTest.py index ae357ef09c4..c6c7cb7f993 100755 --- a/tests/ts/TypeScriptTest.py +++ b/tests/ts/TypeScriptTest.py @@ -117,6 +117,11 @@ def esbuild(input, output): ) esbuild("typescript_keywords.ts", "typescript_keywords_generated.cjs") +flatc( + options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api", "--ts-entry-points", "--ts-flat-files"], + schema="../union_underlying_type_test.fbs" +) + print("Running TypeScript Compiler...") check_call(["tsc"]) print("Running TypeScript Compiler in old node resolution mode for no_import_ext...") @@ -129,6 +134,7 @@ def esbuild(input, output): check_call(NODE_CMD + ["JavaScriptUnionVectorTest"]) check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"]) check_call(NODE_CMD + ["JavaScriptComplexArraysTest"]) +check_call(NODE_CMD + ["JavaScriptUnionUnderlyingTypeTest"]) print("Running old v1 TypeScript Tests...") check_call(NODE_CMD + ["JavaScriptTestv1.cjs", "./monster_test_generated.cjs"]) diff --git a/tests/ts/tsconfig.json b/tests/ts/tsconfig.json index d9ef7410c3a..eb08992b427 100644 --- a/tests/ts/tsconfig.json +++ b/tests/ts/tsconfig.json @@ -14,6 +14,7 @@ "optional_scalars/**/*.ts", "namespace_test/**/*.ts", "union_vector/**/*.ts", - "arrays_test_complex/**/*.ts" + "arrays_test_complex/**/*.ts", + "union_underlying_type_test.ts" ] } From 067553156ace23d7eaf480aacdcdedb3191a2660 Mon Sep 17 00:00:00 2001 From: Daniel Frederick Crisman Date: Tue, 16 May 2023 12:46:47 -0400 Subject: [PATCH 27/35] README.md: SemVer case typo (#7962) SemVer (if we are capitalizing it) has a capital V. See the third sub-header at https://semver.org/#semantic-versioning-specification-semver "Semantic Versioning Specification (SemVer)" Update the text in Versioning section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7396b424673..875c73bb9c2 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ Code generation and runtime libraries for many popular languages. ## Versioning -FlatBuffers does not follow traditional Semver versioning (see [rationale](https://github.com/google/flatbuffers/wiki/Versioning)) but rather uses a format of the date of the release. +FlatBuffers does not follow traditional SemVer versioning (see [rationale](https://github.com/google/flatbuffers/wiki/Versioning)) but rather uses a format of the date of the release. ## Contribution From ea7cfcd5911c187f9ab6d9c374c60a054c79d01a Mon Sep 17 00:00:00 2001 From: sssooonnnggg Date: Wed, 17 May 2023 07:06:41 +0800 Subject: [PATCH 28/35] chore: add rust windows test to CI, fix RustTest.bat (#7963) Co-authored-by: Derek Bailey --- .github/workflows/build.yml | 13 +++++++++++-- tests/RustTest.bat | 17 ++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 36e6a3bde19..23f4bb33a4b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -444,14 +444,23 @@ jobs: # gradlew run: gradle jvmMainClasses jvmTest jsTest jsBrowserTest - build-rust: - name: Build Rust + build-rust-linux: + name: Build Rust Linux runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: test working-directory: tests run: bash RustTest.sh + + build-rust-windows: + name: Build Rust Windows + runs-on: windows-2019 + steps: + - uses: actions/checkout@v3 + - name: test + working-directory: tests + run: ./RustTest.bat build-python: name: Build Python diff --git a/tests/RustTest.bat b/tests/RustTest.bat index 236cd9d7f5b..56f43f2d033 100644 --- a/tests/RustTest.bat +++ b/tests/RustTest.bat @@ -15,16 +15,19 @@ rem limitations under the License. rem Compile then run the Rust test. -cd rust_usage_test +cd rust_serialize_test +cargo run -- --quiet || exit /b 1 + +cd ../rust_no_std_compilation_test +rustup install nightly +rustup component add rust-src --toolchain nightly +rustup target add thumbv7m-none-eabi +cargo +nightly build || exit /b 1 + +cd ../rust_usage_test cargo test -- --quiet || exit /b 1 cargo run --bin=flatbuffers_alloc_check || exit /b 1 cargo run --bin=flexbuffers_alloc_check || exit /b 1 cargo run --bin=monster_example || exit /b 1 cd .. -cd rust_no_std_compilation_test -rustup install nightly -rustup component add rust-src --toolchain nightly -rustup target add thumbv7m-none-eabi -cargo build || exit /b 1 -cd .. From d64dc6200a959738b5e3260d74b8e736e81a5af4 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 17 May 2023 10:40:02 -0700 Subject: [PATCH 29/35] Switch to using alias instead of a typedef for FlatBufferBuilder (#7966) --- include/flatbuffers/flatbuffer_builder.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index ed932cd9cc5..6dcf9528dc2 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -1302,11 +1302,6 @@ template class FlatBufferBuilderImpl { // This will remain 0 if no 64-bit offset types are added to the buffer. size_t length_of_64_bit_region_; - // When true, 64-bit offsets can still be added to the builder. When false, - // only 32-bit offsets can be added, and attempts to add a 64-bit offset will - // raise an assertion. This is typically a compile-time error in ordering the - // serialization of 64-bit offset fields not at the tail of the buffer. - // Ensure objects are not nested. bool nested; @@ -1417,8 +1412,8 @@ template class FlatBufferBuilderImpl { // Hack to `FlatBufferBuilder` mean `FlatBufferBuilder` or // `FlatBufferBuilder<>`, where the template < > syntax is required. -typedef FlatBufferBuilderImpl FlatBufferBuilder; -typedef FlatBufferBuilderImpl FlatBufferBuilder64; +using FlatBufferBuilder = FlatBufferBuilderImpl; +using FlatBufferBuilder64 = FlatBufferBuilderImpl; // These are external due to GCC not allowing them in the class. // See: https://stackoverflow.com/q/8061456/868247 From cb14043f820271287ec0a487467612c1932c80f9 Mon Sep 17 00:00:00 2001 From: sssooonnnggg Date: Thu, 18 May 2023 01:54:49 +0800 Subject: [PATCH 30/35] fix(rust): fixed rust namer isses, resolve #7865 and ##7782 (#7964) Co-authored-by: Derek Bailey --- scripts/generate_code.py | 6 + src/idl_namer.h | 3 +- tests/rust_namer_test.fbs | 27 ++ tests/rust_namer_test/mod.rs | 21 ++ .../rust_namer_test/field_table_generated.rs | 117 ++++++++ .../rust_namer_test/field_union_generated.rs | 145 ++++++++++ .../rust_namer_test/game_message_generated.rs | 201 ++++++++++++++ .../game_message_wrapper_generated.rs | 255 ++++++++++++++++++ .../player_input_change_generated.rs | 117 ++++++++ .../player_spectate_generated.rs | 117 ++++++++ .../player_stat_event_generated.rs | 117 ++++++++ .../rust_namer_test/root_table_generated.rs | 199 ++++++++++++++ .../rust_usage_test/tests/integration_test.rs | 5 + 13 files changed, 1329 insertions(+), 1 deletion(-) create mode 100644 tests/rust_namer_test.fbs create mode 100644 tests/rust_namer_test/mod.rs create mode 100644 tests/rust_namer_test/rust_namer_test/field_table_generated.rs create mode 100644 tests/rust_namer_test/rust_namer_test/field_union_generated.rs create mode 100644 tests/rust_namer_test/rust_namer_test/game_message_generated.rs create mode 100644 tests/rust_namer_test/rust_namer_test/game_message_wrapper_generated.rs create mode 100644 tests/rust_namer_test/rust_namer_test/player_input_change_generated.rs create mode 100644 tests/rust_namer_test/rust_namer_test/player_spectate_generated.rs create mode 100644 tests/rust_namer_test/rust_namer_test/player_stat_event_generated.rs create mode 100644 tests/rust_namer_test/rust_namer_test/root_table_generated.rs diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 57af85ca56e..772cdf4744c 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -339,6 +339,12 @@ def glob(path, pattern): schema="arrays_test.fbs", ) +flatc( + RUST_OPTS, + prefix="rust_namer_test", + schema="rust_namer_test.fbs", +) + flatc( BASE_OPTS + PYTHON_OPTS, schema="arrays_test.fbs", diff --git a/src/idl_namer.h b/src/idl_namer.h index 7f89433da65..337ac920b57 100644 --- a/src/idl_namer.h +++ b/src/idl_namer.h @@ -146,7 +146,8 @@ class IdlNamer : public Namer { std::string LegacyRustUnionTypeMethod(const FieldDef &d) { // assert d is a union - return Method(d.name + "_type"); + // d should convert case but not escape keywords due to historical reasons + return ConvertCase(d.name, config_.fields, Case::kLowerCamel) + "_type"; } private: diff --git a/tests/rust_namer_test.fbs b/tests/rust_namer_test.fbs new file mode 100644 index 00000000000..646abcb9d4b --- /dev/null +++ b/tests/rust_namer_test.fbs @@ -0,0 +1,27 @@ +namespace RustNamerTest; + +table FieldTable {} + +union FieldUnion { + f :FieldTable (id: 0), +} + +table RootTable { + field42 :FieldUnion (id: 1); +} + +table PlayerStatEvent {} +table PlayerSpectate {} +table PlayerInputChange {} + +union GameMessage +{ + PlayerStatEvent, + PlayerSpectate, + PlayerInputChange +} + +table GameMessageWrapper +{ + Message:GameMessage; +} \ No newline at end of file diff --git a/tests/rust_namer_test/mod.rs b/tests/rust_namer_test/mod.rs new file mode 100644 index 00000000000..264a2c09168 --- /dev/null +++ b/tests/rust_namer_test/mod.rs @@ -0,0 +1,21 @@ +// Automatically generated by the Flatbuffers compiler. Do not modify. +// @generated +pub mod rust_namer_test { + use super::*; + mod field_union_generated; + pub use self::field_union_generated::*; + mod game_message_generated; + pub use self::game_message_generated::*; + mod field_table_generated; + pub use self::field_table_generated::*; + mod root_table_generated; + pub use self::root_table_generated::*; + mod player_stat_event_generated; + pub use self::player_stat_event_generated::*; + mod player_spectate_generated; + pub use self::player_spectate_generated::*; + mod player_input_change_generated; + pub use self::player_input_change_generated::*; + mod game_message_wrapper_generated; + pub use self::game_message_wrapper_generated::*; +} // rust_namer_test diff --git a/tests/rust_namer_test/rust_namer_test/field_table_generated.rs b/tests/rust_namer_test/rust_namer_test/field_table_generated.rs new file mode 100644 index 00000000000..d8034ef0ed5 --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/field_table_generated.rs @@ -0,0 +1,117 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +pub enum FieldTableOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct FieldTable<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for FieldTable<'a> { + type Inner = FieldTable<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> FieldTable<'a> { + + pub const fn get_fully_qualified_name() -> &'static str { + "RustNamerTest.FieldTable" + } + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + FieldTable { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + _args: &'args FieldTableArgs + ) -> flatbuffers::WIPOffset> { + let mut builder = FieldTableBuilder::new(_fbb); + builder.finish() + } + + pub fn unpack(&self) -> FieldTableT { + FieldTableT { + } + } +} + +impl flatbuffers::Verifiable for FieldTable<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .finish(); + Ok(()) + } +} +pub struct FieldTableArgs { +} +impl<'a> Default for FieldTableArgs { + #[inline] + fn default() -> Self { + FieldTableArgs { + } + } +} + +pub struct FieldTableBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> FieldTableBuilder<'a, 'b> { + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> FieldTableBuilder<'a, 'b> { + let start = _fbb.start_table(); + FieldTableBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for FieldTable<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("FieldTable"); + ds.finish() + } +} +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub struct FieldTableT { +} +impl Default for FieldTableT { + fn default() -> Self { + Self { + } + } +} +impl FieldTableT { + pub fn pack<'b>( + &self, + _fbb: &mut flatbuffers::FlatBufferBuilder<'b> + ) -> flatbuffers::WIPOffset> { + FieldTable::create(_fbb, &FieldTableArgs{ + }) + } +} diff --git a/tests/rust_namer_test/rust_namer_test/field_union_generated.rs b/tests/rust_namer_test/rust_namer_test/field_union_generated.rs new file mode 100644 index 00000000000..f5d866210ba --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/field_union_generated.rs @@ -0,0 +1,145 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +pub const ENUM_MIN_FIELD_UNION: u8 = 0; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +pub const ENUM_MAX_FIELD_UNION: u8 = 1; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +#[allow(non_camel_case_types)] +pub const ENUM_VALUES_FIELD_UNION: [FieldUnion; 2] = [ + FieldUnion::NONE, + FieldUnion::f, +]; + +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +pub struct FieldUnion(pub u8); +#[allow(non_upper_case_globals)] +impl FieldUnion { + pub const NONE: Self = Self(0); + pub const f: Self = Self(1); + + pub const ENUM_MIN: u8 = 0; + pub const ENUM_MAX: u8 = 1; + pub const ENUM_VALUES: &'static [Self] = &[ + Self::NONE, + Self::f, + ]; + /// Returns the variant's name or "" if unknown. + pub fn variant_name(self) -> Option<&'static str> { + match self { + Self::NONE => Some("NONE"), + Self::f => Some("f"), + _ => None, + } + } +} +impl core::fmt::Debug for FieldUnion { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { + if let Some(name) = self.variant_name() { + f.write_str(name) + } else { + f.write_fmt(format_args!("", self.0)) + } + } +} +impl<'a> flatbuffers::Follow<'a> for FieldUnion { + type Inner = Self; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + let b = flatbuffers::read_scalar_at::(buf, loc); + Self(b) + } +} + +impl flatbuffers::Push for FieldUnion { + type Output = FieldUnion; + #[inline] + unsafe fn push(&self, dst: &mut [u8], _written_len: usize) { + flatbuffers::emplace_scalar::(dst, self.0); + } +} + +impl flatbuffers::EndianScalar for FieldUnion { + type Scalar = u8; + #[inline] + fn to_little_endian(self) -> u8 { + self.0.to_le() + } + #[inline] + #[allow(clippy::wrong_self_convention)] + fn from_little_endian(v: u8) -> Self { + let b = u8::from_le(v); + Self(b) + } +} + +impl<'a> flatbuffers::Verifiable for FieldUnion { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + u8::run_verifier(v, pos) + } +} + +impl flatbuffers::SimpleToVerifyInSlice for FieldUnion {} +pub struct FieldUnionUnionTableOffset {} + +#[allow(clippy::upper_case_acronyms)] +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub enum FieldUnionT { + NONE, + F(Box), +} +impl Default for FieldUnionT { + fn default() -> Self { + Self::NONE + } +} +impl FieldUnionT { + pub fn field_union_type(&self) -> FieldUnion { + match self { + Self::NONE => FieldUnion::NONE, + Self::F(_) => FieldUnion::f, + } + } + pub fn pack(&self, fbb: &mut flatbuffers::FlatBufferBuilder) -> Option> { + match self { + Self::NONE => None, + Self::F(v) => Some(v.pack(fbb).as_union_value()), + } + } + /// If the union variant matches, return the owned FieldTableT, setting the union to NONE. + pub fn take_f(&mut self) -> Option> { + if let Self::F(_) = self { + let v = core::mem::replace(self, Self::NONE); + if let Self::F(w) = v { + Some(w) + } else { + unreachable!() + } + } else { + None + } + } + /// If the union variant matches, return a reference to the FieldTableT. + pub fn as_f(&self) -> Option<&FieldTableT> { + if let Self::F(v) = self { Some(v.as_ref()) } else { None } + } + /// If the union variant matches, return a mutable reference to the FieldTableT. + pub fn as_f_mut(&mut self) -> Option<&mut FieldTableT> { + if let Self::F(v) = self { Some(v.as_mut()) } else { None } + } +} diff --git a/tests/rust_namer_test/rust_namer_test/game_message_generated.rs b/tests/rust_namer_test/rust_namer_test/game_message_generated.rs new file mode 100644 index 00000000000..b6bf9eae12f --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/game_message_generated.rs @@ -0,0 +1,201 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +pub const ENUM_MIN_GAME_MESSAGE: u8 = 0; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +pub const ENUM_MAX_GAME_MESSAGE: u8 = 3; +#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] +#[allow(non_camel_case_types)] +pub const ENUM_VALUES_GAME_MESSAGE: [GameMessage; 4] = [ + GameMessage::NONE, + GameMessage::PlayerStatEvent, + GameMessage::PlayerSpectate, + GameMessage::PlayerInputChange, +]; + +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] +#[repr(transparent)] +pub struct GameMessage(pub u8); +#[allow(non_upper_case_globals)] +impl GameMessage { + pub const NONE: Self = Self(0); + pub const PlayerStatEvent: Self = Self(1); + pub const PlayerSpectate: Self = Self(2); + pub const PlayerInputChange: Self = Self(3); + + pub const ENUM_MIN: u8 = 0; + pub const ENUM_MAX: u8 = 3; + pub const ENUM_VALUES: &'static [Self] = &[ + Self::NONE, + Self::PlayerStatEvent, + Self::PlayerSpectate, + Self::PlayerInputChange, + ]; + /// Returns the variant's name or "" if unknown. + pub fn variant_name(self) -> Option<&'static str> { + match self { + Self::NONE => Some("NONE"), + Self::PlayerStatEvent => Some("PlayerStatEvent"), + Self::PlayerSpectate => Some("PlayerSpectate"), + Self::PlayerInputChange => Some("PlayerInputChange"), + _ => None, + } + } +} +impl core::fmt::Debug for GameMessage { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { + if let Some(name) = self.variant_name() { + f.write_str(name) + } else { + f.write_fmt(format_args!("", self.0)) + } + } +} +impl<'a> flatbuffers::Follow<'a> for GameMessage { + type Inner = Self; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + let b = flatbuffers::read_scalar_at::(buf, loc); + Self(b) + } +} + +impl flatbuffers::Push for GameMessage { + type Output = GameMessage; + #[inline] + unsafe fn push(&self, dst: &mut [u8], _written_len: usize) { + flatbuffers::emplace_scalar::(dst, self.0); + } +} + +impl flatbuffers::EndianScalar for GameMessage { + type Scalar = u8; + #[inline] + fn to_little_endian(self) -> u8 { + self.0.to_le() + } + #[inline] + #[allow(clippy::wrong_self_convention)] + fn from_little_endian(v: u8) -> Self { + let b = u8::from_le(v); + Self(b) + } +} + +impl<'a> flatbuffers::Verifiable for GameMessage { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + u8::run_verifier(v, pos) + } +} + +impl flatbuffers::SimpleToVerifyInSlice for GameMessage {} +pub struct GameMessageUnionTableOffset {} + +#[allow(clippy::upper_case_acronyms)] +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub enum GameMessageT { + NONE, + PlayerStatEvent(Box), + PlayerSpectate(Box), + PlayerInputChange(Box), +} +impl Default for GameMessageT { + fn default() -> Self { + Self::NONE + } +} +impl GameMessageT { + pub fn game_message_type(&self) -> GameMessage { + match self { + Self::NONE => GameMessage::NONE, + Self::PlayerStatEvent(_) => GameMessage::PlayerStatEvent, + Self::PlayerSpectate(_) => GameMessage::PlayerSpectate, + Self::PlayerInputChange(_) => GameMessage::PlayerInputChange, + } + } + pub fn pack(&self, fbb: &mut flatbuffers::FlatBufferBuilder) -> Option> { + match self { + Self::NONE => None, + Self::PlayerStatEvent(v) => Some(v.pack(fbb).as_union_value()), + Self::PlayerSpectate(v) => Some(v.pack(fbb).as_union_value()), + Self::PlayerInputChange(v) => Some(v.pack(fbb).as_union_value()), + } + } + /// If the union variant matches, return the owned PlayerStatEventT, setting the union to NONE. + pub fn take_player_stat_event(&mut self) -> Option> { + if let Self::PlayerStatEvent(_) = self { + let v = core::mem::replace(self, Self::NONE); + if let Self::PlayerStatEvent(w) = v { + Some(w) + } else { + unreachable!() + } + } else { + None + } + } + /// If the union variant matches, return a reference to the PlayerStatEventT. + pub fn as_player_stat_event(&self) -> Option<&PlayerStatEventT> { + if let Self::PlayerStatEvent(v) = self { Some(v.as_ref()) } else { None } + } + /// If the union variant matches, return a mutable reference to the PlayerStatEventT. + pub fn as_player_stat_event_mut(&mut self) -> Option<&mut PlayerStatEventT> { + if let Self::PlayerStatEvent(v) = self { Some(v.as_mut()) } else { None } + } + /// If the union variant matches, return the owned PlayerSpectateT, setting the union to NONE. + pub fn take_player_spectate(&mut self) -> Option> { + if let Self::PlayerSpectate(_) = self { + let v = core::mem::replace(self, Self::NONE); + if let Self::PlayerSpectate(w) = v { + Some(w) + } else { + unreachable!() + } + } else { + None + } + } + /// If the union variant matches, return a reference to the PlayerSpectateT. + pub fn as_player_spectate(&self) -> Option<&PlayerSpectateT> { + if let Self::PlayerSpectate(v) = self { Some(v.as_ref()) } else { None } + } + /// If the union variant matches, return a mutable reference to the PlayerSpectateT. + pub fn as_player_spectate_mut(&mut self) -> Option<&mut PlayerSpectateT> { + if let Self::PlayerSpectate(v) = self { Some(v.as_mut()) } else { None } + } + /// If the union variant matches, return the owned PlayerInputChangeT, setting the union to NONE. + pub fn take_player_input_change(&mut self) -> Option> { + if let Self::PlayerInputChange(_) = self { + let v = core::mem::replace(self, Self::NONE); + if let Self::PlayerInputChange(w) = v { + Some(w) + } else { + unreachable!() + } + } else { + None + } + } + /// If the union variant matches, return a reference to the PlayerInputChangeT. + pub fn as_player_input_change(&self) -> Option<&PlayerInputChangeT> { + if let Self::PlayerInputChange(v) = self { Some(v.as_ref()) } else { None } + } + /// If the union variant matches, return a mutable reference to the PlayerInputChangeT. + pub fn as_player_input_change_mut(&mut self) -> Option<&mut PlayerInputChangeT> { + if let Self::PlayerInputChange(v) = self { Some(v.as_mut()) } else { None } + } +} diff --git a/tests/rust_namer_test/rust_namer_test/game_message_wrapper_generated.rs b/tests/rust_namer_test/rust_namer_test/game_message_wrapper_generated.rs new file mode 100644 index 00000000000..05d8fa32ef6 --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/game_message_wrapper_generated.rs @@ -0,0 +1,255 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +pub enum GameMessageWrapperOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct GameMessageWrapper<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for GameMessageWrapper<'a> { + type Inner = GameMessageWrapper<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> GameMessageWrapper<'a> { + pub const VT_MESSAGE_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_MESSAGE: flatbuffers::VOffsetT = 6; + + pub const fn get_fully_qualified_name() -> &'static str { + "RustNamerTest.GameMessageWrapper" + } + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + GameMessageWrapper { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args GameMessageWrapperArgs + ) -> flatbuffers::WIPOffset> { + let mut builder = GameMessageWrapperBuilder::new(_fbb); + if let Some(x) = args.Message { builder.add_Message(x); } + builder.add_Message_type(args.Message_type); + builder.finish() + } + + pub fn unpack(&self) -> GameMessageWrapperT { + let Message = match self.Message_type() { + GameMessage::NONE => GameMessageT::NONE, + GameMessage::PlayerStatEvent => GameMessageT::PlayerStatEvent(Box::new( + self.Message_as_player_stat_event() + .expect("Invalid union table, expected `GameMessage::PlayerStatEvent`.") + .unpack() + )), + GameMessage::PlayerSpectate => GameMessageT::PlayerSpectate(Box::new( + self.Message_as_player_spectate() + .expect("Invalid union table, expected `GameMessage::PlayerSpectate`.") + .unpack() + )), + GameMessage::PlayerInputChange => GameMessageT::PlayerInputChange(Box::new( + self.Message_as_player_input_change() + .expect("Invalid union table, expected `GameMessage::PlayerInputChange`.") + .unpack() + )), + _ => GameMessageT::NONE, + }; + GameMessageWrapperT { + Message, + } + } + + #[inline] + pub fn Message_type(&self) -> GameMessage { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(GameMessageWrapper::VT_MESSAGE_TYPE, Some(GameMessage::NONE)).unwrap()} + } + #[inline] + pub fn Message(&self) -> Option> { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::>>(GameMessageWrapper::VT_MESSAGE, None)} + } + #[inline] + #[allow(non_snake_case)] + pub fn Message_as_player_stat_event(&self) -> Option> { + if self.Message_type() == GameMessage::PlayerStatEvent { + self.Message().map(|t| { + // Safety: + // Created from a valid Table for this object + // Which contains a valid union in this slot + unsafe { PlayerStatEvent::init_from_table(t) } + }) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn Message_as_player_spectate(&self) -> Option> { + if self.Message_type() == GameMessage::PlayerSpectate { + self.Message().map(|t| { + // Safety: + // Created from a valid Table for this object + // Which contains a valid union in this slot + unsafe { PlayerSpectate::init_from_table(t) } + }) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn Message_as_player_input_change(&self) -> Option> { + if self.Message_type() == GameMessage::PlayerInputChange { + self.Message().map(|t| { + // Safety: + // Created from a valid Table for this object + // Which contains a valid union in this slot + unsafe { PlayerInputChange::init_from_table(t) } + }) + } else { + None + } + } + +} + +impl flatbuffers::Verifiable for GameMessageWrapper<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .visit_union::("Message_type", Self::VT_MESSAGE_TYPE, "Message", Self::VT_MESSAGE, false, |key, v, pos| { + match key { + GameMessage::PlayerStatEvent => v.verify_union_variant::>("GameMessage::PlayerStatEvent", pos), + GameMessage::PlayerSpectate => v.verify_union_variant::>("GameMessage::PlayerSpectate", pos), + GameMessage::PlayerInputChange => v.verify_union_variant::>("GameMessage::PlayerInputChange", pos), + _ => Ok(()), + } + })? + .finish(); + Ok(()) + } +} +pub struct GameMessageWrapperArgs { + pub Message_type: GameMessage, + pub Message: Option>, +} +impl<'a> Default for GameMessageWrapperArgs { + #[inline] + fn default() -> Self { + GameMessageWrapperArgs { + Message_type: GameMessage::NONE, + Message: None, + } + } +} + +pub struct GameMessageWrapperBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> GameMessageWrapperBuilder<'a, 'b> { + #[inline] + pub fn add_Message_type(&mut self, Message_type: GameMessage) { + self.fbb_.push_slot::(GameMessageWrapper::VT_MESSAGE_TYPE, Message_type, GameMessage::NONE); + } + #[inline] + pub fn add_Message(&mut self, Message: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(GameMessageWrapper::VT_MESSAGE, Message); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> GameMessageWrapperBuilder<'a, 'b> { + let start = _fbb.start_table(); + GameMessageWrapperBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for GameMessageWrapper<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("GameMessageWrapper"); + ds.field("Message_type", &self.Message_type()); + match self.Message_type() { + GameMessage::PlayerStatEvent => { + if let Some(x) = self.Message_as_player_stat_event() { + ds.field("Message", &x) + } else { + ds.field("Message", &"InvalidFlatbuffer: Union discriminant does not match value.") + } + }, + GameMessage::PlayerSpectate => { + if let Some(x) = self.Message_as_player_spectate() { + ds.field("Message", &x) + } else { + ds.field("Message", &"InvalidFlatbuffer: Union discriminant does not match value.") + } + }, + GameMessage::PlayerInputChange => { + if let Some(x) = self.Message_as_player_input_change() { + ds.field("Message", &x) + } else { + ds.field("Message", &"InvalidFlatbuffer: Union discriminant does not match value.") + } + }, + _ => { + let x: Option<()> = None; + ds.field("Message", &x) + }, + }; + ds.finish() + } +} +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub struct GameMessageWrapperT { + pub Message: GameMessageT, +} +impl Default for GameMessageWrapperT { + fn default() -> Self { + Self { + Message: GameMessageT::NONE, + } + } +} +impl GameMessageWrapperT { + pub fn pack<'b>( + &self, + _fbb: &mut flatbuffers::FlatBufferBuilder<'b> + ) -> flatbuffers::WIPOffset> { + let Message_type = self.Message.game_message_type(); + let Message = self.Message.pack(_fbb); + GameMessageWrapper::create(_fbb, &GameMessageWrapperArgs{ + Message_type, + Message, + }) + } +} diff --git a/tests/rust_namer_test/rust_namer_test/player_input_change_generated.rs b/tests/rust_namer_test/rust_namer_test/player_input_change_generated.rs new file mode 100644 index 00000000000..2f57d80f95b --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/player_input_change_generated.rs @@ -0,0 +1,117 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +pub enum PlayerInputChangeOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct PlayerInputChange<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for PlayerInputChange<'a> { + type Inner = PlayerInputChange<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> PlayerInputChange<'a> { + + pub const fn get_fully_qualified_name() -> &'static str { + "RustNamerTest.PlayerInputChange" + } + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PlayerInputChange { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + _args: &'args PlayerInputChangeArgs + ) -> flatbuffers::WIPOffset> { + let mut builder = PlayerInputChangeBuilder::new(_fbb); + builder.finish() + } + + pub fn unpack(&self) -> PlayerInputChangeT { + PlayerInputChangeT { + } + } +} + +impl flatbuffers::Verifiable for PlayerInputChange<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .finish(); + Ok(()) + } +} +pub struct PlayerInputChangeArgs { +} +impl<'a> Default for PlayerInputChangeArgs { + #[inline] + fn default() -> Self { + PlayerInputChangeArgs { + } + } +} + +pub struct PlayerInputChangeBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> PlayerInputChangeBuilder<'a, 'b> { + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PlayerInputChangeBuilder<'a, 'b> { + let start = _fbb.start_table(); + PlayerInputChangeBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for PlayerInputChange<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("PlayerInputChange"); + ds.finish() + } +} +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub struct PlayerInputChangeT { +} +impl Default for PlayerInputChangeT { + fn default() -> Self { + Self { + } + } +} +impl PlayerInputChangeT { + pub fn pack<'b>( + &self, + _fbb: &mut flatbuffers::FlatBufferBuilder<'b> + ) -> flatbuffers::WIPOffset> { + PlayerInputChange::create(_fbb, &PlayerInputChangeArgs{ + }) + } +} diff --git a/tests/rust_namer_test/rust_namer_test/player_spectate_generated.rs b/tests/rust_namer_test/rust_namer_test/player_spectate_generated.rs new file mode 100644 index 00000000000..06e51106eb7 --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/player_spectate_generated.rs @@ -0,0 +1,117 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +pub enum PlayerSpectateOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct PlayerSpectate<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for PlayerSpectate<'a> { + type Inner = PlayerSpectate<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> PlayerSpectate<'a> { + + pub const fn get_fully_qualified_name() -> &'static str { + "RustNamerTest.PlayerSpectate" + } + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PlayerSpectate { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + _args: &'args PlayerSpectateArgs + ) -> flatbuffers::WIPOffset> { + let mut builder = PlayerSpectateBuilder::new(_fbb); + builder.finish() + } + + pub fn unpack(&self) -> PlayerSpectateT { + PlayerSpectateT { + } + } +} + +impl flatbuffers::Verifiable for PlayerSpectate<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .finish(); + Ok(()) + } +} +pub struct PlayerSpectateArgs { +} +impl<'a> Default for PlayerSpectateArgs { + #[inline] + fn default() -> Self { + PlayerSpectateArgs { + } + } +} + +pub struct PlayerSpectateBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> PlayerSpectateBuilder<'a, 'b> { + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PlayerSpectateBuilder<'a, 'b> { + let start = _fbb.start_table(); + PlayerSpectateBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for PlayerSpectate<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("PlayerSpectate"); + ds.finish() + } +} +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub struct PlayerSpectateT { +} +impl Default for PlayerSpectateT { + fn default() -> Self { + Self { + } + } +} +impl PlayerSpectateT { + pub fn pack<'b>( + &self, + _fbb: &mut flatbuffers::FlatBufferBuilder<'b> + ) -> flatbuffers::WIPOffset> { + PlayerSpectate::create(_fbb, &PlayerSpectateArgs{ + }) + } +} diff --git a/tests/rust_namer_test/rust_namer_test/player_stat_event_generated.rs b/tests/rust_namer_test/rust_namer_test/player_stat_event_generated.rs new file mode 100644 index 00000000000..a76bdfa739b --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/player_stat_event_generated.rs @@ -0,0 +1,117 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +pub enum PlayerStatEventOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct PlayerStatEvent<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for PlayerStatEvent<'a> { + type Inner = PlayerStatEvent<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> PlayerStatEvent<'a> { + + pub const fn get_fully_qualified_name() -> &'static str { + "RustNamerTest.PlayerStatEvent" + } + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + PlayerStatEvent { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + _args: &'args PlayerStatEventArgs + ) -> flatbuffers::WIPOffset> { + let mut builder = PlayerStatEventBuilder::new(_fbb); + builder.finish() + } + + pub fn unpack(&self) -> PlayerStatEventT { + PlayerStatEventT { + } + } +} + +impl flatbuffers::Verifiable for PlayerStatEvent<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .finish(); + Ok(()) + } +} +pub struct PlayerStatEventArgs { +} +impl<'a> Default for PlayerStatEventArgs { + #[inline] + fn default() -> Self { + PlayerStatEventArgs { + } + } +} + +pub struct PlayerStatEventBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> PlayerStatEventBuilder<'a, 'b> { + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> PlayerStatEventBuilder<'a, 'b> { + let start = _fbb.start_table(); + PlayerStatEventBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for PlayerStatEvent<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("PlayerStatEvent"); + ds.finish() + } +} +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub struct PlayerStatEventT { +} +impl Default for PlayerStatEventT { + fn default() -> Self { + Self { + } + } +} +impl PlayerStatEventT { + pub fn pack<'b>( + &self, + _fbb: &mut flatbuffers::FlatBufferBuilder<'b> + ) -> flatbuffers::WIPOffset> { + PlayerStatEvent::create(_fbb, &PlayerStatEventArgs{ + }) + } +} diff --git a/tests/rust_namer_test/rust_namer_test/root_table_generated.rs b/tests/rust_namer_test/rust_namer_test/root_table_generated.rs new file mode 100644 index 00000000000..a87ba0f483d --- /dev/null +++ b/tests/rust_namer_test/rust_namer_test/root_table_generated.rs @@ -0,0 +1,199 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +pub enum RootTableOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct RootTable<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for RootTable<'a> { + type Inner = RootTable<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> RootTable<'a> { + pub const VT_FIELD42_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_FIELD42: flatbuffers::VOffsetT = 6; + + pub const fn get_fully_qualified_name() -> &'static str { + "RustNamerTest.RootTable" + } + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + RootTable { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args RootTableArgs + ) -> flatbuffers::WIPOffset> { + let mut builder = RootTableBuilder::new(_fbb); + if let Some(x) = args.field42 { builder.add_field42(x); } + builder.add_field42_type(args.field42_type); + builder.finish() + } + + pub fn unpack(&self) -> RootTableT { + let field42 = match self.field42_type() { + FieldUnion::NONE => FieldUnionT::NONE, + FieldUnion::f => FieldUnionT::F(Box::new( + self.field42_as_f() + .expect("Invalid union table, expected `FieldUnion::f`.") + .unpack() + )), + _ => FieldUnionT::NONE, + }; + RootTableT { + field42, + } + } + + #[inline] + pub fn field42_type(&self) -> FieldUnion { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(RootTable::VT_FIELD42_TYPE, Some(FieldUnion::NONE)).unwrap()} + } + #[inline] + pub fn field42(&self) -> Option> { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::>>(RootTable::VT_FIELD42, None)} + } + #[inline] + #[allow(non_snake_case)] + pub fn field42_as_f(&self) -> Option> { + if self.field42_type() == FieldUnion::f { + self.field42().map(|t| { + // Safety: + // Created from a valid Table for this object + // Which contains a valid union in this slot + unsafe { FieldTable::init_from_table(t) } + }) + } else { + None + } + } + +} + +impl flatbuffers::Verifiable for RootTable<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .visit_union::("field42_type", Self::VT_FIELD42_TYPE, "field42", Self::VT_FIELD42, false, |key, v, pos| { + match key { + FieldUnion::f => v.verify_union_variant::>("FieldUnion::f", pos), + _ => Ok(()), + } + })? + .finish(); + Ok(()) + } +} +pub struct RootTableArgs { + pub field42_type: FieldUnion, + pub field42: Option>, +} +impl<'a> Default for RootTableArgs { + #[inline] + fn default() -> Self { + RootTableArgs { + field42_type: FieldUnion::NONE, + field42: None, + } + } +} + +pub struct RootTableBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> RootTableBuilder<'a, 'b> { + #[inline] + pub fn add_field42_type(&mut self, field42_type: FieldUnion) { + self.fbb_.push_slot::(RootTable::VT_FIELD42_TYPE, field42_type, FieldUnion::NONE); + } + #[inline] + pub fn add_field42(&mut self, field42: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(RootTable::VT_FIELD42, field42); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> RootTableBuilder<'a, 'b> { + let start = _fbb.start_table(); + RootTableBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for RootTable<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("RootTable"); + ds.field("field42_type", &self.field42_type()); + match self.field42_type() { + FieldUnion::f => { + if let Some(x) = self.field42_as_f() { + ds.field("field42", &x) + } else { + ds.field("field42", &"InvalidFlatbuffer: Union discriminant does not match value.") + } + }, + _ => { + let x: Option<()> = None; + ds.field("field42", &x) + }, + }; + ds.finish() + } +} +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub struct RootTableT { + pub field42: FieldUnionT, +} +impl Default for RootTableT { + fn default() -> Self { + Self { + field42: FieldUnionT::NONE, + } + } +} +impl RootTableT { + pub fn pack<'b>( + &self, + _fbb: &mut flatbuffers::FlatBufferBuilder<'b> + ) -> flatbuffers::WIPOffset> { + let field42_type = self.field42.field_union_type(); + let field42 = self.field42.pack(_fbb); + RootTable::create(_fbb, &RootTableArgs{ + field42_type, + field42, + }) + } +} diff --git a/tests/rust_usage_test/tests/integration_test.rs b/tests/rust_usage_test/tests/integration_test.rs index fd92da3855b..89cacc1713a 100644 --- a/tests/rust_usage_test/tests/integration_test.rs +++ b/tests/rust_usage_test/tests/integration_test.rs @@ -78,6 +78,11 @@ mod arrays_test_generated; #[path = "../../keyword_test/mod.rs"] mod keyword_test_generated; +// Test rust namer, should not cause compiling issues +#[allow(dead_code, unused_imports, clippy::all)] +#[path = "../../rust_namer_test/mod.rs"] +mod rust_namer_test; + #[rustfmt::skip] // TODO: Use standard rust formatting and remove dead code. #[allow(dead_code)] mod flatbuffers_tests { From a352bdbc34130aea537040cd2bfe9eb73d63c74b Mon Sep 17 00:00:00 2001 From: Chih-Hsuan Yen <1937689+yan12125@users.noreply.github.com> Date: Thu, 18 May 2023 04:10:51 +0800 Subject: [PATCH 31/35] Fix python tests (#7960) * Don't generate types unless --python-typing specified Fixes https://github.com/google/flatbuffers/issues/7944 * Fix incorrect import statements Fixes https://github.com/google/flatbuffers/issues/7951 * Fix $PYTHONPATH in PythonTest.sh Regressed from https://github.com/google/flatbuffers/pull/7529 * PythonTest: fail if something goes wrong GitHub Actions runs `bash PythonTest.sh`, and thus failures were not visible. * Build flatc for Python tests * Regenerate codes --------- Co-authored-by: Derek Bailey --- .github/workflows/build.yml | 3 + .../python/greeter/models/HelloReply.py | 2 +- .../python/greeter/models/HelloRequest.py | 2 +- python/flatbuffers/reflection/Enum.py | 20 +-- python/flatbuffers/reflection/EnumVal.py | 14 +- python/flatbuffers/reflection/Field.py | 32 ++-- python/flatbuffers/reflection/KeyValue.py | 4 +- python/flatbuffers/reflection/Object.py | 20 +-- python/flatbuffers/reflection/RPCCall.py | 16 +- python/flatbuffers/reflection/Schema.py | 26 +-- python/flatbuffers/reflection/SchemaFile.py | 4 +- python/flatbuffers/reflection/Service.py | 14 +- python/flatbuffers/reflection/Type.py | 12 +- src/idl_gen_python.cpp | 17 +- tests/MyGame/Example/ArrayStruct.py | 2 +- tests/MyGame/Example/ArrayTable.py | 2 +- tests/MyGame/Example/Monster.py | 150 +++++++++--------- tests/MyGame/Example/NestedUnion/Vec3.py | 2 +- tests/MyGame/Example/Referrable.py | 2 +- tests/MyGame/Example/Stat.py | 6 +- .../MyGame/Example/TestSimpleTableWithEnum.py | 2 +- tests/MyGame/Example/TypeAliases.py | 24 +-- tests/PythonTest.sh | 6 +- tests/monster_test_generated.py | 4 +- tests/optional_scalars/ScalarStuff.py | 72 ++++----- 25 files changed, 234 insertions(+), 224 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 23f4bb33a4b..dcbf6260b00 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -467,6 +467,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - name: flatc + # FIXME: make test script not rely on flatc + run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_STRICT_MODE=ON . && make -j - name: test working-directory: tests run: bash PythonTest.sh diff --git a/grpc/examples/python/greeter/models/HelloReply.py b/grpc/examples/python/greeter/models/HelloReply.py index bf182fc8518..b1adc8c31a2 100644 --- a/grpc/examples/python/greeter/models/HelloReply.py +++ b/grpc/examples/python/greeter/models/HelloReply.py @@ -40,7 +40,7 @@ def Start(builder): def HelloReplyAddMessage(builder, message): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(message), 0) -def AddMessage(builder: flatbuffers.Builder, message: int): +def AddMessage(builder, message): HelloReplyAddMessage(builder, message) def HelloReplyEnd(builder): diff --git a/grpc/examples/python/greeter/models/HelloRequest.py b/grpc/examples/python/greeter/models/HelloRequest.py index 9df6b22c9b4..db217dd2191 100644 --- a/grpc/examples/python/greeter/models/HelloRequest.py +++ b/grpc/examples/python/greeter/models/HelloRequest.py @@ -40,7 +40,7 @@ def Start(builder): def HelloRequestAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): HelloRequestAddName(builder, name) def HelloRequestEnd(builder): diff --git a/python/flatbuffers/reflection/Enum.py b/python/flatbuffers/reflection/Enum.py index fd4c410a10f..2d484c0b10f 100644 --- a/python/flatbuffers/reflection/Enum.py +++ b/python/flatbuffers/reflection/Enum.py @@ -42,7 +42,7 @@ def Values(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.EnumVal import EnumVal + from reflection.EnumVal import EnumVal obj = EnumVal() obj.Init(self._tab.Bytes, x) return obj @@ -72,7 +72,7 @@ def UnderlyingType(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .reflection.Type import Type + from reflection.Type import Type obj = Type() obj.Init(self._tab.Bytes, x) return obj @@ -85,7 +85,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.KeyValue import KeyValue + from reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -140,13 +140,13 @@ def Start(builder): def EnumAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): EnumAddName(builder, name) def EnumAddValues(builder, values): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(values), 0) -def AddValues(builder: flatbuffers.Builder, values: int): +def AddValues(builder, values): EnumAddValues(builder, values) def EnumStartValuesVector(builder, numElems): @@ -158,19 +158,19 @@ def StartValuesVector(builder, numElems: int) -> int: def EnumAddIsUnion(builder, isUnion): builder.PrependBoolSlot(2, isUnion, 0) -def AddIsUnion(builder: flatbuffers.Builder, isUnion: bool): +def AddIsUnion(builder, isUnion): EnumAddIsUnion(builder, isUnion) def EnumAddUnderlyingType(builder, underlyingType): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(underlyingType), 0) -def AddUnderlyingType(builder: flatbuffers.Builder, underlyingType: int): +def AddUnderlyingType(builder, underlyingType): EnumAddUnderlyingType(builder, underlyingType) def EnumAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder: flatbuffers.Builder, attributes: int): +def AddAttributes(builder, attributes): EnumAddAttributes(builder, attributes) def EnumStartAttributesVector(builder, numElems): @@ -182,7 +182,7 @@ def StartAttributesVector(builder, numElems: int) -> int: def EnumAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder: flatbuffers.Builder, documentation: int): +def AddDocumentation(builder, documentation): EnumAddDocumentation(builder, documentation) def EnumStartDocumentationVector(builder, numElems): @@ -194,7 +194,7 @@ def StartDocumentationVector(builder, numElems: int) -> int: def EnumAddDeclarationFile(builder, declarationFile): builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) -def AddDeclarationFile(builder: flatbuffers.Builder, declarationFile: int): +def AddDeclarationFile(builder, declarationFile): EnumAddDeclarationFile(builder, declarationFile) def EnumEnd(builder): diff --git a/python/flatbuffers/reflection/EnumVal.py b/python/flatbuffers/reflection/EnumVal.py index 207dd843669..3da936b4ac8 100644 --- a/python/flatbuffers/reflection/EnumVal.py +++ b/python/flatbuffers/reflection/EnumVal.py @@ -47,7 +47,7 @@ def UnionType(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .reflection.Type import Type + from reflection.Type import Type obj = Type() obj.Init(self._tab.Bytes, x) return obj @@ -80,7 +80,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.KeyValue import KeyValue + from reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -107,25 +107,25 @@ def Start(builder): def EnumValAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): EnumValAddName(builder, name) def EnumValAddValue(builder, value): builder.PrependInt64Slot(1, value, 0) -def AddValue(builder: flatbuffers.Builder, value: int): +def AddValue(builder, value): EnumValAddValue(builder, value) def EnumValAddUnionType(builder, unionType): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(unionType), 0) -def AddUnionType(builder: flatbuffers.Builder, unionType: int): +def AddUnionType(builder, unionType): EnumValAddUnionType(builder, unionType) def EnumValAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder: flatbuffers.Builder, documentation: int): +def AddDocumentation(builder, documentation): EnumValAddDocumentation(builder, documentation) def EnumValStartDocumentationVector(builder, numElems): @@ -137,7 +137,7 @@ def StartDocumentationVector(builder, numElems: int) -> int: def EnumValAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder: flatbuffers.Builder, attributes: int): +def AddAttributes(builder, attributes): EnumValAddAttributes(builder, attributes) def EnumValStartAttributesVector(builder, numElems): diff --git a/python/flatbuffers/reflection/Field.py b/python/flatbuffers/reflection/Field.py index 9e29e74820b..eb70891ace1 100644 --- a/python/flatbuffers/reflection/Field.py +++ b/python/flatbuffers/reflection/Field.py @@ -40,7 +40,7 @@ def Type(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .reflection.Type import Type + from reflection.Type import Type obj = Type() obj.Init(self._tab.Bytes, x) return obj @@ -102,7 +102,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.KeyValue import KeyValue + from reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -172,61 +172,61 @@ def Start(builder): def FieldAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): FieldAddName(builder, name) def FieldAddType(builder, type): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0) -def AddType(builder: flatbuffers.Builder, type: int): +def AddType(builder, type): FieldAddType(builder, type) def FieldAddId(builder, id): builder.PrependUint16Slot(2, id, 0) -def AddId(builder: flatbuffers.Builder, id: int): +def AddId(builder, id): FieldAddId(builder, id) def FieldAddOffset(builder, offset): builder.PrependUint16Slot(3, offset, 0) -def AddOffset(builder: flatbuffers.Builder, offset: int): +def AddOffset(builder, offset): FieldAddOffset(builder, offset) def FieldAddDefaultInteger(builder, defaultInteger): builder.PrependInt64Slot(4, defaultInteger, 0) -def AddDefaultInteger(builder: flatbuffers.Builder, defaultInteger: int): +def AddDefaultInteger(builder, defaultInteger): FieldAddDefaultInteger(builder, defaultInteger) def FieldAddDefaultReal(builder, defaultReal): builder.PrependFloat64Slot(5, defaultReal, 0.0) -def AddDefaultReal(builder: flatbuffers.Builder, defaultReal: float): +def AddDefaultReal(builder, defaultReal): FieldAddDefaultReal(builder, defaultReal) def FieldAddDeprecated(builder, deprecated): builder.PrependBoolSlot(6, deprecated, 0) -def AddDeprecated(builder: flatbuffers.Builder, deprecated: bool): +def AddDeprecated(builder, deprecated): FieldAddDeprecated(builder, deprecated) def FieldAddRequired(builder, required): builder.PrependBoolSlot(7, required, 0) -def AddRequired(builder: flatbuffers.Builder, required: bool): +def AddRequired(builder, required): FieldAddRequired(builder, required) def FieldAddKey(builder, key): builder.PrependBoolSlot(8, key, 0) -def AddKey(builder: flatbuffers.Builder, key: bool): +def AddKey(builder, key): FieldAddKey(builder, key) def FieldAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder: flatbuffers.Builder, attributes: int): +def AddAttributes(builder, attributes): FieldAddAttributes(builder, attributes) def FieldStartAttributesVector(builder, numElems): @@ -238,7 +238,7 @@ def StartAttributesVector(builder, numElems: int) -> int: def FieldAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder: flatbuffers.Builder, documentation: int): +def AddDocumentation(builder, documentation): FieldAddDocumentation(builder, documentation) def FieldStartDocumentationVector(builder, numElems): @@ -250,19 +250,19 @@ def StartDocumentationVector(builder, numElems: int) -> int: def FieldAddOptional(builder, optional): builder.PrependBoolSlot(11, optional, 0) -def AddOptional(builder: flatbuffers.Builder, optional: bool): +def AddOptional(builder, optional): FieldAddOptional(builder, optional) def FieldAddPadding(builder, padding): builder.PrependUint16Slot(12, padding, 0) -def AddPadding(builder: flatbuffers.Builder, padding: int): +def AddPadding(builder, padding): FieldAddPadding(builder, padding) def FieldAddOffset64(builder, offset64): builder.PrependBoolSlot(13, offset64, 0) -def AddOffset64(builder: flatbuffers.Builder, offset64: bool): +def AddOffset64(builder, offset64): FieldAddOffset64(builder, offset64) def FieldEnd(builder): diff --git a/python/flatbuffers/reflection/KeyValue.py b/python/flatbuffers/reflection/KeyValue.py index fb9014c978f..585f99aadfb 100644 --- a/python/flatbuffers/reflection/KeyValue.py +++ b/python/flatbuffers/reflection/KeyValue.py @@ -51,13 +51,13 @@ def Start(builder): def KeyValueAddKey(builder, key): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(key), 0) -def AddKey(builder: flatbuffers.Builder, key: int): +def AddKey(builder, key): KeyValueAddKey(builder, key) def KeyValueAddValue(builder, value): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(value), 0) -def AddValue(builder: flatbuffers.Builder, value: int): +def AddValue(builder, value): KeyValueAddValue(builder, value) def KeyValueEnd(builder): diff --git a/python/flatbuffers/reflection/Object.py b/python/flatbuffers/reflection/Object.py index 139e062785c..33b05733650 100644 --- a/python/flatbuffers/reflection/Object.py +++ b/python/flatbuffers/reflection/Object.py @@ -42,7 +42,7 @@ def Fields(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.Field import Field + from reflection.Field import Field obj = Field() obj.Init(self._tab.Bytes, x) return obj @@ -88,7 +88,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.KeyValue import KeyValue + from reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -143,13 +143,13 @@ def Start(builder): def ObjectAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): ObjectAddName(builder, name) def ObjectAddFields(builder, fields): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(fields), 0) -def AddFields(builder: flatbuffers.Builder, fields: int): +def AddFields(builder, fields): ObjectAddFields(builder, fields) def ObjectStartFieldsVector(builder, numElems): @@ -161,25 +161,25 @@ def StartFieldsVector(builder, numElems: int) -> int: def ObjectAddIsStruct(builder, isStruct): builder.PrependBoolSlot(2, isStruct, 0) -def AddIsStruct(builder: flatbuffers.Builder, isStruct: bool): +def AddIsStruct(builder, isStruct): ObjectAddIsStruct(builder, isStruct) def ObjectAddMinalign(builder, minalign): builder.PrependInt32Slot(3, minalign, 0) -def AddMinalign(builder: flatbuffers.Builder, minalign: int): +def AddMinalign(builder, minalign): ObjectAddMinalign(builder, minalign) def ObjectAddBytesize(builder, bytesize): builder.PrependInt32Slot(4, bytesize, 0) -def AddBytesize(builder: flatbuffers.Builder, bytesize: int): +def AddBytesize(builder, bytesize): ObjectAddBytesize(builder, bytesize) def ObjectAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder: flatbuffers.Builder, attributes: int): +def AddAttributes(builder, attributes): ObjectAddAttributes(builder, attributes) def ObjectStartAttributesVector(builder, numElems): @@ -191,7 +191,7 @@ def StartAttributesVector(builder, numElems: int) -> int: def ObjectAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder: flatbuffers.Builder, documentation: int): +def AddDocumentation(builder, documentation): ObjectAddDocumentation(builder, documentation) def ObjectStartDocumentationVector(builder, numElems): @@ -203,7 +203,7 @@ def StartDocumentationVector(builder, numElems: int) -> int: def ObjectAddDeclarationFile(builder, declarationFile): builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) -def AddDeclarationFile(builder: flatbuffers.Builder, declarationFile: int): +def AddDeclarationFile(builder, declarationFile): ObjectAddDeclarationFile(builder, declarationFile) def ObjectEnd(builder): diff --git a/python/flatbuffers/reflection/RPCCall.py b/python/flatbuffers/reflection/RPCCall.py index f78edec0823..3fd7ff8465f 100644 --- a/python/flatbuffers/reflection/RPCCall.py +++ b/python/flatbuffers/reflection/RPCCall.py @@ -40,7 +40,7 @@ def Request(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .reflection.Object import Object + from reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -51,7 +51,7 @@ def Response(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .reflection.Object import Object + from reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -64,7 +64,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.KeyValue import KeyValue + from reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -111,25 +111,25 @@ def Start(builder): def RPCCallAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): RPCCallAddName(builder, name) def RPCCallAddRequest(builder, request): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(request), 0) -def AddRequest(builder: flatbuffers.Builder, request: int): +def AddRequest(builder, request): RPCCallAddRequest(builder, request) def RPCCallAddResponse(builder, response): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(response), 0) -def AddResponse(builder: flatbuffers.Builder, response: int): +def AddResponse(builder, response): RPCCallAddResponse(builder, response) def RPCCallAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder: flatbuffers.Builder, attributes: int): +def AddAttributes(builder, attributes): RPCCallAddAttributes(builder, attributes) def RPCCallStartAttributesVector(builder, numElems): @@ -141,7 +141,7 @@ def StartAttributesVector(builder, numElems: int) -> int: def RPCCallAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder: flatbuffers.Builder, documentation: int): +def AddDocumentation(builder, documentation): RPCCallAddDocumentation(builder, documentation) def RPCCallStartDocumentationVector(builder, numElems): diff --git a/python/flatbuffers/reflection/Schema.py b/python/flatbuffers/reflection/Schema.py index 06df1a041ce..61ebb196e5e 100644 --- a/python/flatbuffers/reflection/Schema.py +++ b/python/flatbuffers/reflection/Schema.py @@ -35,7 +35,7 @@ def Objects(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.Object import Object + from reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -60,7 +60,7 @@ def Enums(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.Enum import Enum + from reflection.Enum import Enum obj = Enum() obj.Init(self._tab.Bytes, x) return obj @@ -97,7 +97,7 @@ def RootTable(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .reflection.Object import Object + from reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -110,7 +110,7 @@ def Services(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.Service import Service + from reflection.Service import Service obj = Service() obj.Init(self._tab.Bytes, x) return obj @@ -144,7 +144,7 @@ def FbsFiles(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.SchemaFile import SchemaFile + from reflection.SchemaFile import SchemaFile obj = SchemaFile() obj.Init(self._tab.Bytes, x) return obj @@ -171,7 +171,7 @@ def Start(builder): def SchemaAddObjects(builder, objects): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0) -def AddObjects(builder: flatbuffers.Builder, objects: int): +def AddObjects(builder, objects): SchemaAddObjects(builder, objects) def SchemaStartObjectsVector(builder, numElems): @@ -183,7 +183,7 @@ def StartObjectsVector(builder, numElems: int) -> int: def SchemaAddEnums(builder, enums): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0) -def AddEnums(builder: flatbuffers.Builder, enums: int): +def AddEnums(builder, enums): SchemaAddEnums(builder, enums) def SchemaStartEnumsVector(builder, numElems): @@ -195,25 +195,25 @@ def StartEnumsVector(builder, numElems: int) -> int: def SchemaAddFileIdent(builder, fileIdent): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0) -def AddFileIdent(builder: flatbuffers.Builder, fileIdent: int): +def AddFileIdent(builder, fileIdent): SchemaAddFileIdent(builder, fileIdent) def SchemaAddFileExt(builder, fileExt): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0) -def AddFileExt(builder: flatbuffers.Builder, fileExt: int): +def AddFileExt(builder, fileExt): SchemaAddFileExt(builder, fileExt) def SchemaAddRootTable(builder, rootTable): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0) -def AddRootTable(builder: flatbuffers.Builder, rootTable: int): +def AddRootTable(builder, rootTable): SchemaAddRootTable(builder, rootTable) def SchemaAddServices(builder, services): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0) -def AddServices(builder: flatbuffers.Builder, services: int): +def AddServices(builder, services): SchemaAddServices(builder, services) def SchemaStartServicesVector(builder, numElems): @@ -225,13 +225,13 @@ def StartServicesVector(builder, numElems: int) -> int: def SchemaAddAdvancedFeatures(builder, advancedFeatures): builder.PrependUint64Slot(6, advancedFeatures, 0) -def AddAdvancedFeatures(builder: flatbuffers.Builder, advancedFeatures: int): +def AddAdvancedFeatures(builder, advancedFeatures): SchemaAddAdvancedFeatures(builder, advancedFeatures) def SchemaAddFbsFiles(builder, fbsFiles): builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0) -def AddFbsFiles(builder: flatbuffers.Builder, fbsFiles: int): +def AddFbsFiles(builder, fbsFiles): SchemaAddFbsFiles(builder, fbsFiles) def SchemaStartFbsFilesVector(builder, numElems): diff --git a/python/flatbuffers/reflection/SchemaFile.py b/python/flatbuffers/reflection/SchemaFile.py index 009e7f2f01c..a81bcd5dbf9 100644 --- a/python/flatbuffers/reflection/SchemaFile.py +++ b/python/flatbuffers/reflection/SchemaFile.py @@ -69,13 +69,13 @@ def Start(builder): def SchemaFileAddFilename(builder, filename): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0) -def AddFilename(builder: flatbuffers.Builder, filename: int): +def AddFilename(builder, filename): SchemaFileAddFilename(builder, filename) def SchemaFileAddIncludedFilenames(builder, includedFilenames): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(includedFilenames), 0) -def AddIncludedFilenames(builder: flatbuffers.Builder, includedFilenames: int): +def AddIncludedFilenames(builder, includedFilenames): SchemaFileAddIncludedFilenames(builder, includedFilenames) def SchemaFileStartIncludedFilenamesVector(builder, numElems): diff --git a/python/flatbuffers/reflection/Service.py b/python/flatbuffers/reflection/Service.py index eb8db7ef8d3..e69e531f551 100644 --- a/python/flatbuffers/reflection/Service.py +++ b/python/flatbuffers/reflection/Service.py @@ -42,7 +42,7 @@ def Calls(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.RPCCall import RPCCall + from reflection.RPCCall import RPCCall obj = RPCCall() obj.Init(self._tab.Bytes, x) return obj @@ -67,7 +67,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .reflection.KeyValue import KeyValue + from reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -122,13 +122,13 @@ def Start(builder): def ServiceAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): ServiceAddName(builder, name) def ServiceAddCalls(builder, calls): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(calls), 0) -def AddCalls(builder: flatbuffers.Builder, calls: int): +def AddCalls(builder, calls): ServiceAddCalls(builder, calls) def ServiceStartCallsVector(builder, numElems): @@ -140,7 +140,7 @@ def StartCallsVector(builder, numElems: int) -> int: def ServiceAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder: flatbuffers.Builder, attributes: int): +def AddAttributes(builder, attributes): ServiceAddAttributes(builder, attributes) def ServiceStartAttributesVector(builder, numElems): @@ -152,7 +152,7 @@ def StartAttributesVector(builder, numElems: int) -> int: def ServiceAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder: flatbuffers.Builder, documentation: int): +def AddDocumentation(builder, documentation): ServiceAddDocumentation(builder, documentation) def ServiceStartDocumentationVector(builder, numElems): @@ -164,7 +164,7 @@ def StartDocumentationVector(builder, numElems: int) -> int: def ServiceAddDeclarationFile(builder, declarationFile): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) -def AddDeclarationFile(builder: flatbuffers.Builder, declarationFile: int): +def AddDeclarationFile(builder, declarationFile): ServiceAddDeclarationFile(builder, declarationFile) def ServiceEnd(builder): diff --git a/python/flatbuffers/reflection/Type.py b/python/flatbuffers/reflection/Type.py index 76c08c48acb..49c78a3d9a7 100644 --- a/python/flatbuffers/reflection/Type.py +++ b/python/flatbuffers/reflection/Type.py @@ -81,37 +81,37 @@ def Start(builder): def TypeAddBaseType(builder, baseType): builder.PrependInt8Slot(0, baseType, 0) -def AddBaseType(builder: flatbuffers.Builder, baseType: int): +def AddBaseType(builder, baseType): TypeAddBaseType(builder, baseType) def TypeAddElement(builder, element): builder.PrependInt8Slot(1, element, 0) -def AddElement(builder: flatbuffers.Builder, element: int): +def AddElement(builder, element): TypeAddElement(builder, element) def TypeAddIndex(builder, index): builder.PrependInt32Slot(2, index, -1) -def AddIndex(builder: flatbuffers.Builder, index: int): +def AddIndex(builder, index): TypeAddIndex(builder, index) def TypeAddFixedLength(builder, fixedLength): builder.PrependUint16Slot(3, fixedLength, 0) -def AddFixedLength(builder: flatbuffers.Builder, fixedLength: int): +def AddFixedLength(builder, fixedLength): TypeAddFixedLength(builder, fixedLength) def TypeAddBaseSize(builder, baseSize): builder.PrependUint32Slot(4, baseSize, 4) -def AddBaseSize(builder: flatbuffers.Builder, baseSize: int): +def AddBaseSize(builder, baseSize): TypeAddBaseSize(builder, baseSize) def TypeAddElementSize(builder, elementSize): builder.PrependUint32Slot(5, elementSize, 0) -def AddElementSize(builder: flatbuffers.Builder, elementSize: int): +def AddElementSize(builder, elementSize): TypeAddElementSize(builder, elementSize) def TypeEnd(builder): diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 1b11bbe22ee..ff535d15746 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -275,7 +275,7 @@ class PythonGenerator : public BaseGenerator { code += namer_.Method(field); const ImportMapEntry import_entry = { - "." + GenPackageReference(field.value.type), TypeName(field) + GenPackageReference(field.value.type), TypeName(field) }; if (parser_.opts.python_typing) { @@ -337,7 +337,7 @@ class PythonGenerator : public BaseGenerator { code += namer_.Method(field) + "(self)"; const ImportMapEntry import_entry = { - "." + GenPackageReference(field.value.type), TypeName(field) + GenPackageReference(field.value.type), TypeName(field) }; if (parser_.opts.python_typing) { @@ -446,7 +446,7 @@ class PythonGenerator : public BaseGenerator { GenReceiver(struct_def, code_ptr); code += namer_.Method(field); const ImportMapEntry import_entry = { - "." + GenPackageReference(field.value.type), TypeName(field) + GenPackageReference(field.value.type), TypeName(field) }; if (parser_.opts.python_typing) { @@ -570,7 +570,7 @@ class PythonGenerator : public BaseGenerator { std::string qualified_name = NestedFlatbufferType(unqualified_name); if (qualified_name.empty()) { qualified_name = nested->constant; } - const ImportMapEntry import_entry = { "." + qualified_name, + const ImportMapEntry import_entry = { qualified_name, unqualified_name }; auto &code = *code_ptr; @@ -773,8 +773,13 @@ class PythonGenerator : public BaseGenerator { if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. - code += "def Add" + field_method + "(builder: flatbuffers.Builder, " + - field_var + ": " + field_ty + "):\n"; + code += "def Add" + field_method; + if (parser_.opts.python_typing) { + code += "(builder: flatbuffers.Builder, " + field_var + ": " + field_ty; + } else { + code += "(builder, " + field_var; + } + code += "):\n"; code += Indent + namer_.Type(struct_def) + "Add" + field_method; code += "(builder, "; code += field_var; diff --git a/tests/MyGame/Example/ArrayStruct.py b/tests/MyGame/Example/ArrayStruct.py index be85ec89673..a839c09f9c1 100644 --- a/tests/MyGame/Example/ArrayStruct.py +++ b/tests/MyGame/Example/ArrayStruct.py @@ -5,7 +5,7 @@ import flatbuffers from flatbuffers.compat import import_numpy from typing import Any -from .MyGame.Example.NestedStruct import NestedStruct +from MyGame.Example.NestedStruct import NestedStruct np = import_numpy() class ArrayStruct(object): diff --git a/tests/MyGame/Example/ArrayTable.py b/tests/MyGame/Example/ArrayTable.py index 90fbb4a4650..7d314dfd517 100644 --- a/tests/MyGame/Example/ArrayTable.py +++ b/tests/MyGame/Example/ArrayTable.py @@ -5,7 +5,7 @@ import flatbuffers from flatbuffers.compat import import_numpy from typing import Any -from .MyGame.Example.ArrayStruct import ArrayStruct +from MyGame.Example.ArrayStruct import ArrayStruct from typing import Optional np = import_numpy() diff --git a/tests/MyGame/Example/Monster.py b/tests/MyGame/Example/Monster.py index f216f84f7bc..1503011fc29 100644 --- a/tests/MyGame/Example/Monster.py +++ b/tests/MyGame/Example/Monster.py @@ -34,7 +34,7 @@ def Pos(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: x = o + self._tab.Pos - from .MyGame.Example.Vec3 import Vec3 + from MyGame.Example.Vec3 import Vec3 obj = Vec3() obj.Init(self._tab.Bytes, x) return obj @@ -118,7 +118,7 @@ def Test4(self, j): if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 - from .MyGame.Example.Test import Test + from MyGame.Example.Test import Test obj = Test() obj.Init(self._tab.Bytes, x) return obj @@ -165,7 +165,7 @@ def Testarrayoftables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .MyGame.Example.Monster import Monster + from MyGame.Example.Monster import Monster obj = Monster() obj.Init(self._tab.Bytes, x) return obj @@ -188,7 +188,7 @@ def Enemy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(28)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .MyGame.Example.Monster import Monster + from MyGame.Example.Monster import Monster obj = Monster() obj.Init(self._tab.Bytes, x) return obj @@ -213,7 +213,7 @@ def TestnestedflatbufferAsNumpy(self): def TestnestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) if o != 0: - from .MyGame.Example.Monster import Monster + from MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 @@ -234,7 +234,7 @@ def Testempty(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(32)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .MyGame.Example.Stat import Stat + from MyGame.Example.Stat import Stat obj = Stat() obj.Init(self._tab.Bytes, x) return obj @@ -377,7 +377,7 @@ def Testarrayofsortedstruct(self, j): if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 8 - from .MyGame.Example.Ability import Ability + from MyGame.Example.Ability import Ability obj = Ability() obj.Init(self._tab.Bytes, x) return obj @@ -428,7 +428,7 @@ def Test5(self, j): if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 - from .MyGame.Example.Test import Test + from MyGame.Example.Test import Test obj = Test() obj.Init(self._tab.Bytes, x) return obj @@ -505,7 +505,7 @@ def ParentNamespaceTest(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(72)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from .MyGame.InParentNamespace import InParentNamespace + from MyGame.InParentNamespace import InParentNamespace obj = InParentNamespace() obj.Init(self._tab.Bytes, x) return obj @@ -518,7 +518,7 @@ def VectorOfReferrables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .MyGame.Example.Referrable import Referrable + from MyGame.Example.Referrable import Referrable obj = Referrable() obj.Init(self._tab.Bytes, x) return obj @@ -577,7 +577,7 @@ def VectorOfStrongReferrables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .MyGame.Example.Referrable import Referrable + from MyGame.Example.Referrable import Referrable obj = Referrable() obj.Init(self._tab.Bytes, x) return obj @@ -750,7 +750,7 @@ def TestrequirednestedflatbufferAsNumpy(self): def TestrequirednestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(102)) if o != 0: - from .MyGame.Example.Monster import Monster + from MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 @@ -773,7 +773,7 @@ def ScalarKeySortedTables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from .MyGame.Example.Stat import Stat + from MyGame.Example.Stat import Stat obj = Stat() obj.Init(self._tab.Bytes, x) return obj @@ -796,7 +796,7 @@ def NativeInline(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(106)) if o != 0: x = o + self._tab.Pos - from .MyGame.Example.Test import Test + from MyGame.Example.Test import Test obj = Test() obj.Init(self._tab.Bytes, x) return obj @@ -881,31 +881,31 @@ def Start(builder): def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) -def AddPos(builder: flatbuffers.Builder, pos: Any): +def AddPos(builder, pos): MonsterAddPos(builder, pos) def MonsterAddMana(builder, mana): builder.PrependInt16Slot(1, mana, 150) -def AddMana(builder: flatbuffers.Builder, mana: int): +def AddMana(builder, mana): MonsterAddMana(builder, mana) def MonsterAddHp(builder, hp): builder.PrependInt16Slot(2, hp, 100) -def AddHp(builder: flatbuffers.Builder, hp: int): +def AddHp(builder, hp): MonsterAddHp(builder, hp) def MonsterAddName(builder, name): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder: flatbuffers.Builder, name: int): +def AddName(builder, name): MonsterAddName(builder, name) def MonsterAddInventory(builder, inventory): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) -def AddInventory(builder: flatbuffers.Builder, inventory: int): +def AddInventory(builder, inventory): MonsterAddInventory(builder, inventory) def MonsterStartInventoryVector(builder, numElems): @@ -917,25 +917,25 @@ def StartInventoryVector(builder, numElems: int) -> int: def MonsterAddColor(builder, color): builder.PrependUint8Slot(6, color, 8) -def AddColor(builder: flatbuffers.Builder, color: int): +def AddColor(builder, color): MonsterAddColor(builder, color) def MonsterAddTestType(builder, testType): builder.PrependUint8Slot(7, testType, 0) -def AddTestType(builder: flatbuffers.Builder, testType: int): +def AddTestType(builder, testType): MonsterAddTestType(builder, testType) def MonsterAddTest(builder, test): builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) -def AddTest(builder: flatbuffers.Builder, test: int): +def AddTest(builder, test): MonsterAddTest(builder, test) def MonsterAddTest4(builder, test4): builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) -def AddTest4(builder: flatbuffers.Builder, test4: int): +def AddTest4(builder, test4): MonsterAddTest4(builder, test4) def MonsterStartTest4Vector(builder, numElems): @@ -947,7 +947,7 @@ def StartTest4Vector(builder, numElems: int) -> int: def MonsterAddTestarrayofstring(builder, testarrayofstring): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) -def AddTestarrayofstring(builder: flatbuffers.Builder, testarrayofstring: int): +def AddTestarrayofstring(builder, testarrayofstring): MonsterAddTestarrayofstring(builder, testarrayofstring) def MonsterStartTestarrayofstringVector(builder, numElems): @@ -959,7 +959,7 @@ def StartTestarrayofstringVector(builder, numElems: int) -> int: def MonsterAddTestarrayoftables(builder, testarrayoftables): builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) -def AddTestarrayoftables(builder: flatbuffers.Builder, testarrayoftables: int): +def AddTestarrayoftables(builder, testarrayoftables): MonsterAddTestarrayoftables(builder, testarrayoftables) def MonsterStartTestarrayoftablesVector(builder, numElems): @@ -971,13 +971,13 @@ def StartTestarrayoftablesVector(builder, numElems: int) -> int: def MonsterAddEnemy(builder, enemy): builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) -def AddEnemy(builder: flatbuffers.Builder, enemy: int): +def AddEnemy(builder, enemy): MonsterAddEnemy(builder, enemy) def MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer): builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) -def AddTestnestedflatbuffer(builder: flatbuffers.Builder, testnestedflatbuffer: int): +def AddTestnestedflatbuffer(builder, testnestedflatbuffer): MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer) def MonsterStartTestnestedflatbufferVector(builder, numElems): @@ -996,67 +996,67 @@ def MakeTestnestedflatbufferVectorFromBytes(builder, bytes): def MonsterAddTestempty(builder, testempty): builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) -def AddTestempty(builder: flatbuffers.Builder, testempty: int): +def AddTestempty(builder, testempty): MonsterAddTestempty(builder, testempty) def MonsterAddTestbool(builder, testbool): builder.PrependBoolSlot(15, testbool, 0) -def AddTestbool(builder: flatbuffers.Builder, testbool: bool): +def AddTestbool(builder, testbool): MonsterAddTestbool(builder, testbool) def MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1): builder.PrependInt32Slot(16, testhashs32Fnv1, 0) -def AddTesthashs32Fnv1(builder: flatbuffers.Builder, testhashs32Fnv1: int): +def AddTesthashs32Fnv1(builder, testhashs32Fnv1): MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1) def MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1): builder.PrependUint32Slot(17, testhashu32Fnv1, 0) -def AddTesthashu32Fnv1(builder: flatbuffers.Builder, testhashu32Fnv1: int): +def AddTesthashu32Fnv1(builder, testhashu32Fnv1): MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1) def MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1): builder.PrependInt64Slot(18, testhashs64Fnv1, 0) -def AddTesthashs64Fnv1(builder: flatbuffers.Builder, testhashs64Fnv1: int): +def AddTesthashs64Fnv1(builder, testhashs64Fnv1): MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1) def MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1): builder.PrependUint64Slot(19, testhashu64Fnv1, 0) -def AddTesthashu64Fnv1(builder: flatbuffers.Builder, testhashu64Fnv1: int): +def AddTesthashu64Fnv1(builder, testhashu64Fnv1): MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1) def MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a): builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) -def AddTesthashs32Fnv1a(builder: flatbuffers.Builder, testhashs32Fnv1a: int): +def AddTesthashs32Fnv1a(builder, testhashs32Fnv1a): MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a) def MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a): builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) -def AddTesthashu32Fnv1a(builder: flatbuffers.Builder, testhashu32Fnv1a: int): +def AddTesthashu32Fnv1a(builder, testhashu32Fnv1a): MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a) def MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a): builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) -def AddTesthashs64Fnv1a(builder: flatbuffers.Builder, testhashs64Fnv1a: int): +def AddTesthashs64Fnv1a(builder, testhashs64Fnv1a): MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a) def MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a): builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) -def AddTesthashu64Fnv1a(builder: flatbuffers.Builder, testhashu64Fnv1a: int): +def AddTesthashu64Fnv1a(builder, testhashu64Fnv1a): MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a) def MonsterAddTestarrayofbools(builder, testarrayofbools): builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) -def AddTestarrayofbools(builder: flatbuffers.Builder, testarrayofbools: int): +def AddTestarrayofbools(builder, testarrayofbools): MonsterAddTestarrayofbools(builder, testarrayofbools) def MonsterStartTestarrayofboolsVector(builder, numElems): @@ -1068,25 +1068,25 @@ def StartTestarrayofboolsVector(builder, numElems: int) -> int: def MonsterAddTestf(builder, testf): builder.PrependFloat32Slot(25, testf, 3.14159) -def AddTestf(builder: flatbuffers.Builder, testf: float): +def AddTestf(builder, testf): MonsterAddTestf(builder, testf) def MonsterAddTestf2(builder, testf2): builder.PrependFloat32Slot(26, testf2, 3.0) -def AddTestf2(builder: flatbuffers.Builder, testf2: float): +def AddTestf2(builder, testf2): MonsterAddTestf2(builder, testf2) def MonsterAddTestf3(builder, testf3): builder.PrependFloat32Slot(27, testf3, 0.0) -def AddTestf3(builder: flatbuffers.Builder, testf3: float): +def AddTestf3(builder, testf3): MonsterAddTestf3(builder, testf3) def MonsterAddTestarrayofstring2(builder, testarrayofstring2): builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) -def AddTestarrayofstring2(builder: flatbuffers.Builder, testarrayofstring2: int): +def AddTestarrayofstring2(builder, testarrayofstring2): MonsterAddTestarrayofstring2(builder, testarrayofstring2) def MonsterStartTestarrayofstring2Vector(builder, numElems): @@ -1098,7 +1098,7 @@ def StartTestarrayofstring2Vector(builder, numElems: int) -> int: def MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct): builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) -def AddTestarrayofsortedstruct(builder: flatbuffers.Builder, testarrayofsortedstruct: int): +def AddTestarrayofsortedstruct(builder, testarrayofsortedstruct): MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct) def MonsterStartTestarrayofsortedstructVector(builder, numElems): @@ -1110,7 +1110,7 @@ def StartTestarrayofsortedstructVector(builder, numElems: int) -> int: def MonsterAddFlex(builder, flex): builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) -def AddFlex(builder: flatbuffers.Builder, flex: int): +def AddFlex(builder, flex): MonsterAddFlex(builder, flex) def MonsterStartFlexVector(builder, numElems): @@ -1122,7 +1122,7 @@ def StartFlexVector(builder, numElems: int) -> int: def MonsterAddTest5(builder, test5): builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) -def AddTest5(builder: flatbuffers.Builder, test5: int): +def AddTest5(builder, test5): MonsterAddTest5(builder, test5) def MonsterStartTest5Vector(builder, numElems): @@ -1134,7 +1134,7 @@ def StartTest5Vector(builder, numElems: int) -> int: def MonsterAddVectorOfLongs(builder, vectorOfLongs): builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) -def AddVectorOfLongs(builder: flatbuffers.Builder, vectorOfLongs: int): +def AddVectorOfLongs(builder, vectorOfLongs): MonsterAddVectorOfLongs(builder, vectorOfLongs) def MonsterStartVectorOfLongsVector(builder, numElems): @@ -1146,7 +1146,7 @@ def StartVectorOfLongsVector(builder, numElems: int) -> int: def MonsterAddVectorOfDoubles(builder, vectorOfDoubles): builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) -def AddVectorOfDoubles(builder: flatbuffers.Builder, vectorOfDoubles: int): +def AddVectorOfDoubles(builder, vectorOfDoubles): MonsterAddVectorOfDoubles(builder, vectorOfDoubles) def MonsterStartVectorOfDoublesVector(builder, numElems): @@ -1158,13 +1158,13 @@ def StartVectorOfDoublesVector(builder, numElems: int) -> int: def MonsterAddParentNamespaceTest(builder, parentNamespaceTest): builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) -def AddParentNamespaceTest(builder: flatbuffers.Builder, parentNamespaceTest: int): +def AddParentNamespaceTest(builder, parentNamespaceTest): MonsterAddParentNamespaceTest(builder, parentNamespaceTest) def MonsterAddVectorOfReferrables(builder, vectorOfReferrables): builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) -def AddVectorOfReferrables(builder: flatbuffers.Builder, vectorOfReferrables: int): +def AddVectorOfReferrables(builder, vectorOfReferrables): MonsterAddVectorOfReferrables(builder, vectorOfReferrables) def MonsterStartVectorOfReferrablesVector(builder, numElems): @@ -1176,13 +1176,13 @@ def StartVectorOfReferrablesVector(builder, numElems: int) -> int: def MonsterAddSingleWeakReference(builder, singleWeakReference): builder.PrependUint64Slot(36, singleWeakReference, 0) -def AddSingleWeakReference(builder: flatbuffers.Builder, singleWeakReference: int): +def AddSingleWeakReference(builder, singleWeakReference): MonsterAddSingleWeakReference(builder, singleWeakReference) def MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences): builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) -def AddVectorOfWeakReferences(builder: flatbuffers.Builder, vectorOfWeakReferences: int): +def AddVectorOfWeakReferences(builder, vectorOfWeakReferences): MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences) def MonsterStartVectorOfWeakReferencesVector(builder, numElems): @@ -1194,7 +1194,7 @@ def StartVectorOfWeakReferencesVector(builder, numElems: int) -> int: def MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) -def AddVectorOfStrongReferrables(builder: flatbuffers.Builder, vectorOfStrongReferrables: int): +def AddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables) def MonsterStartVectorOfStrongReferrablesVector(builder, numElems): @@ -1206,13 +1206,13 @@ def StartVectorOfStrongReferrablesVector(builder, numElems: int) -> int: def MonsterAddCoOwningReference(builder, coOwningReference): builder.PrependUint64Slot(39, coOwningReference, 0) -def AddCoOwningReference(builder: flatbuffers.Builder, coOwningReference: int): +def AddCoOwningReference(builder, coOwningReference): MonsterAddCoOwningReference(builder, coOwningReference) def MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) -def AddVectorOfCoOwningReferences(builder: flatbuffers.Builder, vectorOfCoOwningReferences: int): +def AddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences) def MonsterStartVectorOfCoOwningReferencesVector(builder, numElems): @@ -1224,13 +1224,13 @@ def StartVectorOfCoOwningReferencesVector(builder, numElems: int) -> int: def MonsterAddNonOwningReference(builder, nonOwningReference): builder.PrependUint64Slot(41, nonOwningReference, 0) -def AddNonOwningReference(builder: flatbuffers.Builder, nonOwningReference: int): +def AddNonOwningReference(builder, nonOwningReference): MonsterAddNonOwningReference(builder, nonOwningReference) def MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) -def AddVectorOfNonOwningReferences(builder: flatbuffers.Builder, vectorOfNonOwningReferences: int): +def AddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences) def MonsterStartVectorOfNonOwningReferencesVector(builder, numElems): @@ -1242,31 +1242,31 @@ def StartVectorOfNonOwningReferencesVector(builder, numElems: int) -> int: def MonsterAddAnyUniqueType(builder, anyUniqueType): builder.PrependUint8Slot(43, anyUniqueType, 0) -def AddAnyUniqueType(builder: flatbuffers.Builder, anyUniqueType: int): +def AddAnyUniqueType(builder, anyUniqueType): MonsterAddAnyUniqueType(builder, anyUniqueType) def MonsterAddAnyUnique(builder, anyUnique): builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) -def AddAnyUnique(builder: flatbuffers.Builder, anyUnique: int): +def AddAnyUnique(builder, anyUnique): MonsterAddAnyUnique(builder, anyUnique) def MonsterAddAnyAmbiguousType(builder, anyAmbiguousType): builder.PrependUint8Slot(45, anyAmbiguousType, 0) -def AddAnyAmbiguousType(builder: flatbuffers.Builder, anyAmbiguousType: int): +def AddAnyAmbiguousType(builder, anyAmbiguousType): MonsterAddAnyAmbiguousType(builder, anyAmbiguousType) def MonsterAddAnyAmbiguous(builder, anyAmbiguous): builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) -def AddAnyAmbiguous(builder: flatbuffers.Builder, anyAmbiguous: int): +def AddAnyAmbiguous(builder, anyAmbiguous): MonsterAddAnyAmbiguous(builder, anyAmbiguous) def MonsterAddVectorOfEnums(builder, vectorOfEnums): builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) -def AddVectorOfEnums(builder: flatbuffers.Builder, vectorOfEnums: int): +def AddVectorOfEnums(builder, vectorOfEnums): MonsterAddVectorOfEnums(builder, vectorOfEnums) def MonsterStartVectorOfEnumsVector(builder, numElems): @@ -1278,13 +1278,13 @@ def StartVectorOfEnumsVector(builder, numElems: int) -> int: def MonsterAddSignedEnum(builder, signedEnum): builder.PrependInt8Slot(48, signedEnum, -1) -def AddSignedEnum(builder: flatbuffers.Builder, signedEnum: int): +def AddSignedEnum(builder, signedEnum): MonsterAddSignedEnum(builder, signedEnum) def MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) -def AddTestrequirednestedflatbuffer(builder: flatbuffers.Builder, testrequirednestedflatbuffer: int): +def AddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer) def MonsterStartTestrequirednestedflatbufferVector(builder, numElems): @@ -1303,7 +1303,7 @@ def MakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): def MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables): builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) -def AddScalarKeySortedTables(builder: flatbuffers.Builder, scalarKeySortedTables: int): +def AddScalarKeySortedTables(builder, scalarKeySortedTables): MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables) def MonsterStartScalarKeySortedTablesVector(builder, numElems): @@ -1315,67 +1315,67 @@ def StartScalarKeySortedTablesVector(builder, numElems: int) -> int: def MonsterAddNativeInline(builder, nativeInline): builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) -def AddNativeInline(builder: flatbuffers.Builder, nativeInline: Any): +def AddNativeInline(builder, nativeInline): MonsterAddNativeInline(builder, nativeInline) def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) -def AddLongEnumNonEnumDefault(builder: flatbuffers.Builder, longEnumNonEnumDefault: int): +def AddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault) def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2) -def AddLongEnumNormalDefault(builder: flatbuffers.Builder, longEnumNormalDefault: int): +def AddLongEnumNormalDefault(builder, longEnumNormalDefault): MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault) def MonsterAddNanDefault(builder, nanDefault): builder.PrependFloat32Slot(54, nanDefault, float('nan')) -def AddNanDefault(builder: flatbuffers.Builder, nanDefault: float): +def AddNanDefault(builder, nanDefault): MonsterAddNanDefault(builder, nanDefault) def MonsterAddInfDefault(builder, infDefault): builder.PrependFloat32Slot(55, infDefault, float('inf')) -def AddInfDefault(builder: flatbuffers.Builder, infDefault: float): +def AddInfDefault(builder, infDefault): MonsterAddInfDefault(builder, infDefault) def MonsterAddPositiveInfDefault(builder, positiveInfDefault): builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) -def AddPositiveInfDefault(builder: flatbuffers.Builder, positiveInfDefault: float): +def AddPositiveInfDefault(builder, positiveInfDefault): MonsterAddPositiveInfDefault(builder, positiveInfDefault) def MonsterAddInfinityDefault(builder, infinityDefault): builder.PrependFloat32Slot(57, infinityDefault, float('inf')) -def AddInfinityDefault(builder: flatbuffers.Builder, infinityDefault: float): +def AddInfinityDefault(builder, infinityDefault): MonsterAddInfinityDefault(builder, infinityDefault) def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) -def AddPositiveInfinityDefault(builder: flatbuffers.Builder, positiveInfinityDefault: float): +def AddPositiveInfinityDefault(builder, positiveInfinityDefault): MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault) def MonsterAddNegativeInfDefault(builder, negativeInfDefault): builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) -def AddNegativeInfDefault(builder: flatbuffers.Builder, negativeInfDefault: float): +def AddNegativeInfDefault(builder, negativeInfDefault): MonsterAddNegativeInfDefault(builder, negativeInfDefault) def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) -def AddNegativeInfinityDefault(builder: flatbuffers.Builder, negativeInfinityDefault: float): +def AddNegativeInfinityDefault(builder, negativeInfinityDefault): MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault) def MonsterAddDoubleInfDefault(builder, doubleInfDefault): builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) -def AddDoubleInfDefault(builder: flatbuffers.Builder, doubleInfDefault: float): +def AddDoubleInfDefault(builder, doubleInfDefault): MonsterAddDoubleInfDefault(builder, doubleInfDefault) def MonsterEnd(builder): diff --git a/tests/MyGame/Example/NestedUnion/Vec3.py b/tests/MyGame/Example/NestedUnion/Vec3.py index 11feab1196e..d0f8676f46e 100644 --- a/tests/MyGame/Example/NestedUnion/Vec3.py +++ b/tests/MyGame/Example/NestedUnion/Vec3.py @@ -5,7 +5,7 @@ import flatbuffers from flatbuffers.compat import import_numpy from typing import Any -from .MyGame.Example.NestedUnion.Test import Test +from MyGame.Example.NestedUnion.Test import Test from typing import Optional np = import_numpy() diff --git a/tests/MyGame/Example/Referrable.py b/tests/MyGame/Example/Referrable.py index 203c93412c4..9cc5f5724d3 100644 --- a/tests/MyGame/Example/Referrable.py +++ b/tests/MyGame/Example/Referrable.py @@ -44,7 +44,7 @@ def Start(builder): def ReferrableAddId(builder, id): builder.PrependUint64Slot(0, id, 0) -def AddId(builder: flatbuffers.Builder, id: int): +def AddId(builder, id): ReferrableAddId(builder, id) def ReferrableEnd(builder): diff --git a/tests/MyGame/Example/Stat.py b/tests/MyGame/Example/Stat.py index 4f175574eb0..ec6b9d9a227 100644 --- a/tests/MyGame/Example/Stat.py +++ b/tests/MyGame/Example/Stat.py @@ -58,19 +58,19 @@ def Start(builder): def StatAddId(builder, id): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) -def AddId(builder: flatbuffers.Builder, id: int): +def AddId(builder, id): StatAddId(builder, id) def StatAddVal(builder, val): builder.PrependInt64Slot(1, val, 0) -def AddVal(builder: flatbuffers.Builder, val: int): +def AddVal(builder, val): StatAddVal(builder, val) def StatAddCount(builder, count): builder.PrependUint16Slot(2, count, 0) -def AddCount(builder: flatbuffers.Builder, count: int): +def AddCount(builder, count): StatAddCount(builder, count) def StatEnd(builder): diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.py b/tests/MyGame/Example/TestSimpleTableWithEnum.py index 856442c8e48..520d257fd7f 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.py +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.py @@ -44,7 +44,7 @@ def Start(builder): def TestSimpleTableWithEnumAddColor(builder, color): builder.PrependUint8Slot(0, color, 2) -def AddColor(builder: flatbuffers.Builder, color: int): +def AddColor(builder, color): TestSimpleTableWithEnumAddColor(builder, color) def TestSimpleTableWithEnumEnd(builder): diff --git a/tests/MyGame/Example/TypeAliases.py b/tests/MyGame/Example/TypeAliases.py index 27c6c4f9335..00f90ed5b9c 100644 --- a/tests/MyGame/Example/TypeAliases.py +++ b/tests/MyGame/Example/TypeAliases.py @@ -161,67 +161,67 @@ def Start(builder): def TypeAliasesAddI8(builder, i8): builder.PrependInt8Slot(0, i8, 0) -def AddI8(builder: flatbuffers.Builder, i8: int): +def AddI8(builder, i8): TypeAliasesAddI8(builder, i8) def TypeAliasesAddU8(builder, u8): builder.PrependUint8Slot(1, u8, 0) -def AddU8(builder: flatbuffers.Builder, u8: int): +def AddU8(builder, u8): TypeAliasesAddU8(builder, u8) def TypeAliasesAddI16(builder, i16): builder.PrependInt16Slot(2, i16, 0) -def AddI16(builder: flatbuffers.Builder, i16: int): +def AddI16(builder, i16): TypeAliasesAddI16(builder, i16) def TypeAliasesAddU16(builder, u16): builder.PrependUint16Slot(3, u16, 0) -def AddU16(builder: flatbuffers.Builder, u16: int): +def AddU16(builder, u16): TypeAliasesAddU16(builder, u16) def TypeAliasesAddI32(builder, i32): builder.PrependInt32Slot(4, i32, 0) -def AddI32(builder: flatbuffers.Builder, i32: int): +def AddI32(builder, i32): TypeAliasesAddI32(builder, i32) def TypeAliasesAddU32(builder, u32): builder.PrependUint32Slot(5, u32, 0) -def AddU32(builder: flatbuffers.Builder, u32: int): +def AddU32(builder, u32): TypeAliasesAddU32(builder, u32) def TypeAliasesAddI64(builder, i64): builder.PrependInt64Slot(6, i64, 0) -def AddI64(builder: flatbuffers.Builder, i64: int): +def AddI64(builder, i64): TypeAliasesAddI64(builder, i64) def TypeAliasesAddU64(builder, u64): builder.PrependUint64Slot(7, u64, 0) -def AddU64(builder: flatbuffers.Builder, u64: int): +def AddU64(builder, u64): TypeAliasesAddU64(builder, u64) def TypeAliasesAddF32(builder, f32): builder.PrependFloat32Slot(8, f32, 0.0) -def AddF32(builder: flatbuffers.Builder, f32: float): +def AddF32(builder, f32): TypeAliasesAddF32(builder, f32) def TypeAliasesAddF64(builder, f64): builder.PrependFloat64Slot(9, f64, 0.0) -def AddF64(builder: flatbuffers.Builder, f64: float): +def AddF64(builder, f64): TypeAliasesAddF64(builder, f64) def TypeAliasesAddV8(builder, v8): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) -def AddV8(builder: flatbuffers.Builder, v8: int): +def AddV8(builder, v8): TypeAliasesAddV8(builder, v8) def TypeAliasesStartV8Vector(builder, numElems): @@ -233,7 +233,7 @@ def StartV8Vector(builder, numElems: int) -> int: def TypeAliasesAddVf64(builder, vf64): builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) -def AddVf64(builder: flatbuffers.Builder, vf64: int): +def AddVf64(builder, vf64): TypeAliasesAddVf64(builder, vf64) def TypeAliasesStartVf64Vector(builder, numElems): diff --git a/tests/PythonTest.sh b/tests/PythonTest.sh index 925bd95ebbe..fc64e9f5a1e 100755 --- a/tests/PythonTest.sh +++ b/tests/PythonTest.sh @@ -1,4 +1,4 @@ -#!/bin/bash -eu +#!/bin/bash # # Copyright 2014 Google Inc. All rights reserved. # @@ -14,10 +14,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -eu + pushd "$(dirname $0)" >/dev/null test_dir="$(pwd)" gen_code_path=${test_dir} -runtime_library_dir=${test_dir}/../../python +runtime_library_dir=${test_dir}/../python # Emit Python code for the example schema in the test dir: ${test_dir}/../flatc -p -o ${gen_code_path} -I include_test monster_test.fbs --gen-object-api diff --git a/tests/monster_test_generated.py b/tests/monster_test_generated.py index 2acdf6ce856..f2b62cb2f2a 100644 --- a/tests/monster_test_generated.py +++ b/tests/monster_test_generated.py @@ -1050,7 +1050,7 @@ def TestnestedflatbufferAsNumpy(self): def TestnestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) if o != 0: - from .MyGame.Example.Monster import Monster + from MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 @@ -1581,7 +1581,7 @@ def TestrequirednestedflatbufferAsNumpy(self): def TestrequirednestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(102)) if o != 0: - from .MyGame.Example.Monster import Monster + from MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 diff --git a/tests/optional_scalars/ScalarStuff.py b/tests/optional_scalars/ScalarStuff.py index 07737d298ca..dda052f36db 100644 --- a/tests/optional_scalars/ScalarStuff.py +++ b/tests/optional_scalars/ScalarStuff.py @@ -289,217 +289,217 @@ def Start(builder): def ScalarStuffAddJustI8(builder, justI8): builder.PrependInt8Slot(0, justI8, 0) -def AddJustI8(builder: flatbuffers.Builder, justI8: int): +def AddJustI8(builder, justI8): ScalarStuffAddJustI8(builder, justI8) def ScalarStuffAddMaybeI8(builder, maybeI8): builder.PrependInt8Slot(1, maybeI8, None) -def AddMaybeI8(builder: flatbuffers.Builder, maybeI8: int): +def AddMaybeI8(builder, maybeI8): ScalarStuffAddMaybeI8(builder, maybeI8) def ScalarStuffAddDefaultI8(builder, defaultI8): builder.PrependInt8Slot(2, defaultI8, 42) -def AddDefaultI8(builder: flatbuffers.Builder, defaultI8: int): +def AddDefaultI8(builder, defaultI8): ScalarStuffAddDefaultI8(builder, defaultI8) def ScalarStuffAddJustU8(builder, justU8): builder.PrependUint8Slot(3, justU8, 0) -def AddJustU8(builder: flatbuffers.Builder, justU8: int): +def AddJustU8(builder, justU8): ScalarStuffAddJustU8(builder, justU8) def ScalarStuffAddMaybeU8(builder, maybeU8): builder.PrependUint8Slot(4, maybeU8, None) -def AddMaybeU8(builder: flatbuffers.Builder, maybeU8: int): +def AddMaybeU8(builder, maybeU8): ScalarStuffAddMaybeU8(builder, maybeU8) def ScalarStuffAddDefaultU8(builder, defaultU8): builder.PrependUint8Slot(5, defaultU8, 42) -def AddDefaultU8(builder: flatbuffers.Builder, defaultU8: int): +def AddDefaultU8(builder, defaultU8): ScalarStuffAddDefaultU8(builder, defaultU8) def ScalarStuffAddJustI16(builder, justI16): builder.PrependInt16Slot(6, justI16, 0) -def AddJustI16(builder: flatbuffers.Builder, justI16: int): +def AddJustI16(builder, justI16): ScalarStuffAddJustI16(builder, justI16) def ScalarStuffAddMaybeI16(builder, maybeI16): builder.PrependInt16Slot(7, maybeI16, None) -def AddMaybeI16(builder: flatbuffers.Builder, maybeI16: int): +def AddMaybeI16(builder, maybeI16): ScalarStuffAddMaybeI16(builder, maybeI16) def ScalarStuffAddDefaultI16(builder, defaultI16): builder.PrependInt16Slot(8, defaultI16, 42) -def AddDefaultI16(builder: flatbuffers.Builder, defaultI16: int): +def AddDefaultI16(builder, defaultI16): ScalarStuffAddDefaultI16(builder, defaultI16) def ScalarStuffAddJustU16(builder, justU16): builder.PrependUint16Slot(9, justU16, 0) -def AddJustU16(builder: flatbuffers.Builder, justU16: int): +def AddJustU16(builder, justU16): ScalarStuffAddJustU16(builder, justU16) def ScalarStuffAddMaybeU16(builder, maybeU16): builder.PrependUint16Slot(10, maybeU16, None) -def AddMaybeU16(builder: flatbuffers.Builder, maybeU16: int): +def AddMaybeU16(builder, maybeU16): ScalarStuffAddMaybeU16(builder, maybeU16) def ScalarStuffAddDefaultU16(builder, defaultU16): builder.PrependUint16Slot(11, defaultU16, 42) -def AddDefaultU16(builder: flatbuffers.Builder, defaultU16: int): +def AddDefaultU16(builder, defaultU16): ScalarStuffAddDefaultU16(builder, defaultU16) def ScalarStuffAddJustI32(builder, justI32): builder.PrependInt32Slot(12, justI32, 0) -def AddJustI32(builder: flatbuffers.Builder, justI32: int): +def AddJustI32(builder, justI32): ScalarStuffAddJustI32(builder, justI32) def ScalarStuffAddMaybeI32(builder, maybeI32): builder.PrependInt32Slot(13, maybeI32, None) -def AddMaybeI32(builder: flatbuffers.Builder, maybeI32: int): +def AddMaybeI32(builder, maybeI32): ScalarStuffAddMaybeI32(builder, maybeI32) def ScalarStuffAddDefaultI32(builder, defaultI32): builder.PrependInt32Slot(14, defaultI32, 42) -def AddDefaultI32(builder: flatbuffers.Builder, defaultI32: int): +def AddDefaultI32(builder, defaultI32): ScalarStuffAddDefaultI32(builder, defaultI32) def ScalarStuffAddJustU32(builder, justU32): builder.PrependUint32Slot(15, justU32, 0) -def AddJustU32(builder: flatbuffers.Builder, justU32: int): +def AddJustU32(builder, justU32): ScalarStuffAddJustU32(builder, justU32) def ScalarStuffAddMaybeU32(builder, maybeU32): builder.PrependUint32Slot(16, maybeU32, None) -def AddMaybeU32(builder: flatbuffers.Builder, maybeU32: int): +def AddMaybeU32(builder, maybeU32): ScalarStuffAddMaybeU32(builder, maybeU32) def ScalarStuffAddDefaultU32(builder, defaultU32): builder.PrependUint32Slot(17, defaultU32, 42) -def AddDefaultU32(builder: flatbuffers.Builder, defaultU32: int): +def AddDefaultU32(builder, defaultU32): ScalarStuffAddDefaultU32(builder, defaultU32) def ScalarStuffAddJustI64(builder, justI64): builder.PrependInt64Slot(18, justI64, 0) -def AddJustI64(builder: flatbuffers.Builder, justI64: int): +def AddJustI64(builder, justI64): ScalarStuffAddJustI64(builder, justI64) def ScalarStuffAddMaybeI64(builder, maybeI64): builder.PrependInt64Slot(19, maybeI64, None) -def AddMaybeI64(builder: flatbuffers.Builder, maybeI64: int): +def AddMaybeI64(builder, maybeI64): ScalarStuffAddMaybeI64(builder, maybeI64) def ScalarStuffAddDefaultI64(builder, defaultI64): builder.PrependInt64Slot(20, defaultI64, 42) -def AddDefaultI64(builder: flatbuffers.Builder, defaultI64: int): +def AddDefaultI64(builder, defaultI64): ScalarStuffAddDefaultI64(builder, defaultI64) def ScalarStuffAddJustU64(builder, justU64): builder.PrependUint64Slot(21, justU64, 0) -def AddJustU64(builder: flatbuffers.Builder, justU64: int): +def AddJustU64(builder, justU64): ScalarStuffAddJustU64(builder, justU64) def ScalarStuffAddMaybeU64(builder, maybeU64): builder.PrependUint64Slot(22, maybeU64, None) -def AddMaybeU64(builder: flatbuffers.Builder, maybeU64: int): +def AddMaybeU64(builder, maybeU64): ScalarStuffAddMaybeU64(builder, maybeU64) def ScalarStuffAddDefaultU64(builder, defaultU64): builder.PrependUint64Slot(23, defaultU64, 42) -def AddDefaultU64(builder: flatbuffers.Builder, defaultU64: int): +def AddDefaultU64(builder, defaultU64): ScalarStuffAddDefaultU64(builder, defaultU64) def ScalarStuffAddJustF32(builder, justF32): builder.PrependFloat32Slot(24, justF32, 0.0) -def AddJustF32(builder: flatbuffers.Builder, justF32: float): +def AddJustF32(builder, justF32): ScalarStuffAddJustF32(builder, justF32) def ScalarStuffAddMaybeF32(builder, maybeF32): builder.PrependFloat32Slot(25, maybeF32, None) -def AddMaybeF32(builder: flatbuffers.Builder, maybeF32: float): +def AddMaybeF32(builder, maybeF32): ScalarStuffAddMaybeF32(builder, maybeF32) def ScalarStuffAddDefaultF32(builder, defaultF32): builder.PrependFloat32Slot(26, defaultF32, 42.0) -def AddDefaultF32(builder: flatbuffers.Builder, defaultF32: float): +def AddDefaultF32(builder, defaultF32): ScalarStuffAddDefaultF32(builder, defaultF32) def ScalarStuffAddJustF64(builder, justF64): builder.PrependFloat64Slot(27, justF64, 0.0) -def AddJustF64(builder: flatbuffers.Builder, justF64: float): +def AddJustF64(builder, justF64): ScalarStuffAddJustF64(builder, justF64) def ScalarStuffAddMaybeF64(builder, maybeF64): builder.PrependFloat64Slot(28, maybeF64, None) -def AddMaybeF64(builder: flatbuffers.Builder, maybeF64: float): +def AddMaybeF64(builder, maybeF64): ScalarStuffAddMaybeF64(builder, maybeF64) def ScalarStuffAddDefaultF64(builder, defaultF64): builder.PrependFloat64Slot(29, defaultF64, 42.0) -def AddDefaultF64(builder: flatbuffers.Builder, defaultF64: float): +def AddDefaultF64(builder, defaultF64): ScalarStuffAddDefaultF64(builder, defaultF64) def ScalarStuffAddJustBool(builder, justBool): builder.PrependBoolSlot(30, justBool, 0) -def AddJustBool(builder: flatbuffers.Builder, justBool: bool): +def AddJustBool(builder, justBool): ScalarStuffAddJustBool(builder, justBool) def ScalarStuffAddMaybeBool(builder, maybeBool): builder.PrependBoolSlot(31, maybeBool, None) -def AddMaybeBool(builder: flatbuffers.Builder, maybeBool: bool): +def AddMaybeBool(builder, maybeBool): ScalarStuffAddMaybeBool(builder, maybeBool) def ScalarStuffAddDefaultBool(builder, defaultBool): builder.PrependBoolSlot(32, defaultBool, 1) -def AddDefaultBool(builder: flatbuffers.Builder, defaultBool: bool): +def AddDefaultBool(builder, defaultBool): ScalarStuffAddDefaultBool(builder, defaultBool) def ScalarStuffAddJustEnum(builder, justEnum): builder.PrependInt8Slot(33, justEnum, 0) -def AddJustEnum(builder: flatbuffers.Builder, justEnum: int): +def AddJustEnum(builder, justEnum): ScalarStuffAddJustEnum(builder, justEnum) def ScalarStuffAddMaybeEnum(builder, maybeEnum): builder.PrependInt8Slot(34, maybeEnum, None) -def AddMaybeEnum(builder: flatbuffers.Builder, maybeEnum: int): +def AddMaybeEnum(builder, maybeEnum): ScalarStuffAddMaybeEnum(builder, maybeEnum) def ScalarStuffAddDefaultEnum(builder, defaultEnum): builder.PrependInt8Slot(35, defaultEnum, 1) -def AddDefaultEnum(builder: flatbuffers.Builder, defaultEnum: int): +def AddDefaultEnum(builder, defaultEnum): ScalarStuffAddDefaultEnum(builder, defaultEnum) def ScalarStuffEnd(builder): From ae6753684ec9e958251035836eb42fafcfe800fc Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 17 May 2023 13:23:34 -0700 Subject: [PATCH 32/35] switch back to having T explicitly defined in CreateVector (#7967) --- include/flatbuffers/flatbuffer_builder.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index 6dcf9528dc2..0a38b4ac311 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -722,9 +722,8 @@ template class FlatBufferBuilderImpl { /// @param[in] len The number of elements to serialize. /// @return Returns a typed `TOffset` into the serialized data indicating /// where the vector is stored. - template class OffsetT = Offset, - template class VectorT = Vector, - int &...ExplicitArgumentBarrier, typename T> + template class OffsetT = Offset, + template class VectorT = Vector> OffsetT> CreateVector(const T *v, size_t len) { // The type of the length field in the vector. typedef typename VectorT::size_type LenT; @@ -793,7 +792,7 @@ template class FlatBufferBuilderImpl { template class VectorT = Vector64, int &...ExplicitArgumentBarrier, typename T> Offset64> CreateVector64(const std::vector &v) { - return CreateVector(data(v), v.size()); + return CreateVector(data(v), v.size()); } // vector may be implemented using a bit-set, so we can't access it as From b67f1ad6d055ecb526533df814b6902fc96cc676 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 17 May 2023 21:13:16 -0700 Subject: [PATCH 33/35] don't emit flatbuffers include in bfbs generated output (#7968) --- src/idl_gen_cpp.cpp | 6 ++---- tests/64bit/test_64bit_bfbs_generated.h | 11 ++--------- tests/monster_test_bfbs_generated.h | 11 ++--------- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index ff8382beaae..b602724f92c 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -377,10 +377,8 @@ class CppGenerator : public BaseGenerator { code_ += "#pragma clang system_header\n\n"; } - code_ += "#include \"flatbuffers/flatbuffers.h\""; - code_ += ""; - GenFlatbuffersVersionCheck(); - code_ += ""; + code_ += "#include "; + code_ += "#include "; SetNameSpace(struct_def.defined_namespace); auto name = Name(struct_def); diff --git a/tests/64bit/test_64bit_bfbs_generated.h b/tests/64bit/test_64bit_bfbs_generated.h index 999ce188088..9afa58a3e31 100644 --- a/tests/64bit/test_64bit_bfbs_generated.h +++ b/tests/64bit/test_64bit_bfbs_generated.h @@ -4,15 +4,8 @@ #ifndef FLATBUFFERS_GENERATED_TEST64BIT_BFBS_H_ #define FLATBUFFERS_GENERATED_TEST64BIT_BFBS_H_ -#include "flatbuffers/flatbuffers.h" - -// Ensure the included flatbuffers.h is the same version as when this file was -// generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, - "Non-compatible flatbuffers version included"); - +#include +#include struct RootTableBinarySchema { static const uint8_t *data() { // Buffer containing the binary schema. diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index 58adf629efd..3a4c001000f 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -4,15 +4,8 @@ #ifndef FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_BFBS_H_ #define FLATBUFFERS_GENERATED_MONSTERTEST_MYGAME_EXAMPLE_BFBS_H_ -#include "flatbuffers/flatbuffers.h" - -// Ensure the included flatbuffers.h is the same version as when this file was -// generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, - "Non-compatible flatbuffers version included"); - +#include +#include namespace MyGame { namespace Example { From e0a87e36d5ce586f634548d332c07da22713d5c2 Mon Sep 17 00:00:00 2001 From: swimar <130072351+swimar@users.noreply.github.com> Date: Mon, 22 May 2023 03:18:37 -0400 Subject: [PATCH 34/35] Update java pom.xml file to allow flatbuffers-java maven package to be compiled under java 8, and pulled in as a dependency to a project using java 8. (#7893) (#7894) Co-authored-by: Derek Bailey Co-authored-by: Paulo Pinheiro --- java/pom.xml | 196 +++++++++++++++++++++++++++++---------------------- 1 file changed, 110 insertions(+), 86 deletions(-) diff --git a/java/pom.xml b/java/pom.xml index 43e42bc31e1..11301d7f0a6 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -59,15 +59,91 @@ - maven-compiler-plugin + maven-surefire-plugin - 8 - - MyGame/Example/MonsterStorageGrpc.java - MyGame/OtherNameSpace/TableBT.java - + + **/*Test.java + + + 2.22.2 + + + org.apache.maven.plugins + maven-source-plugin + 3.2.1 + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.3.0 + + -Xdoclint:none + -Xdoclint:none + + + + attach-javadocs + + jar + + + + + + org.apache.felix + maven-bundle-plugin + 5.1.2 + true + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + ossrh + https://oss.sonatype.org/ + true + + + + org.apache.maven.plugins + maven-gpg-plugin + 3.0.1 + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + org.apache.maven.plugins + maven-release-plugin + 2.5.3 + + true + false + release + deploy - 3.8.1 @@ -80,91 +156,39 @@ - maven-surefire-plugin - - - **/*Test.java - - - 2.22.2 - - - org.apache.maven.plugins - maven-source-plugin - 3.2.1 - - - attach-sources - - jar - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.3.0 - - -Xdoclint:none - -Xdoclint:none - - - - attach-javadocs - - jar - - - - - - org.apache.felix - maven-bundle-plugin - 5.1.2 - true - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.8 - true + maven-compiler-plugin - ossrh - https://oss.sonatype.org/ - true + 8 + + MyGame/Example/MonsterStorageGrpc.java + MyGame/OtherNameSpace/TableBT.java + + 3.8.1 + + + + + jdk8 + + 1.8 + + + 8 + 8 + + + - org.apache.maven.plugins - maven-gpg-plugin - 3.0.1 - - - sign-artifacts - verify - - sign - - - - --pinentry-mode - loopback - - - - - - - org.apache.maven.plugins - maven-release-plugin - 2.5.3 + maven-compiler-plugin - true - false - release - deploy + + MyGame/Example/MonsterStorageGrpc.java + MyGame/OtherNameSpace/TableBT.java + + 3.8.1 From 0100f6a5779831fa7a651e4b67ef389a8752bd9b Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 26 May 2023 10:33:09 -0700 Subject: [PATCH 35/35] FlatBuffers Version 23.5.26 (#7976) --- CHANGELOG.md | 5 +++ CMake/Version.cmake | 2 +- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- goldens/csharp/Galaxy.cs | 2 +- goldens/csharp/Universe.cs | 2 +- goldens/java/Galaxy.java | 2 +- goldens/java/Universe.java | 2 +- goldens/kotlin/Galaxy.kt | 2 +- goldens/kotlin/Universe.kt | 2 +- goldens/swift/basic_generated.swift | 4 +-- .../Sources/Model/greeter_generated.swift | 4 +-- include/flatbuffers/base.h | 2 +- include/flatbuffers/reflection_generated.h | 2 +- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- .../google/flatbuffers/reflection/Enum.java | 2 +- .../flatbuffers/reflection/EnumVal.java | 2 +- .../google/flatbuffers/reflection/Field.java | 2 +- .../flatbuffers/reflection/KeyValue.java | 2 +- .../google/flatbuffers/reflection/Object.java | 2 +- .../flatbuffers/reflection/RPCCall.java | 2 +- .../google/flatbuffers/reflection/Schema.java | 2 +- .../flatbuffers/reflection/SchemaFile.java | 2 +- .../flatbuffers/reflection/Service.java | 2 +- .../google/flatbuffers/reflection/Type.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- rust/flatbuffers/Cargo.toml | 2 +- samples/monster_generated.h | 2 +- samples/monster_generated.swift | 8 ++--- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/64bit/evolution/v1_generated.h | 2 +- tests/64bit/evolution/v2_generated.h | 2 +- tests/64bit/test_64bit_generated.h | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/KeywordTest/Table2.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- .../generated_cpp17/monster_test_generated.h | 2 +- .../optional_scalars_generated.h | 2 +- .../generated_cpp17/union_vector_generated.h | 2 +- tests/evolution_test/evolution_v1_generated.h | 2 +- tests/evolution_test/evolution_v2_generated.h | 2 +- tests/key_field/key_field_sample_generated.h | 2 +- tests/monster_extra_generated.h | 2 +- tests/monster_test_generated.h | 2 +- .../ext_only/monster_test_generated.hpp | 2 +- .../filesuffix_only/monster_test_suffix.h | 2 +- .../monster_test_suffix.hpp | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 2 +- .../namespace_test2_generated.h | 2 +- tests/native_inline_table_test_generated.h | 2 +- tests/native_type_test_generated.h | 2 +- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 2 +- .../monster_test_generated.swift | 34 +++++++++---------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++--- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +++--- .../MutatingBool_generated.swift | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +++++----- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- tests/union_underlying_type_test_generated.h | 2 +- .../union_value_collision_generated.cs | 6 ++-- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 2 +- 181 files changed, 241 insertions(+), 236 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c627ed3657..145c62b1099 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All major or breaking changes will be documented in this file, as well as any new features that should be highlighted. Minor fixes or improvements are not necessarily listed. +## [23.5.26 (May 26 2023)](https://github.com/google/flatbuffers/releases/tag/v23.5.26) + +* Mostly bug fixing for 64-bit support +* Adds support for specifying underling type of unions in C++ and TS/JS (#7954) + ## [23.5.9 (May 9 2023)](https://github.com/google/flatbuffers/releases/tag/v23.5.9) * 64-bit support for C++ (#7935) diff --git a/CMake/Version.cmake b/CMake/Version.cmake index 737d74a8337..f50e31a6119 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 23) set(VERSION_MINOR 5) -set(VERSION_PATCH 9) +set(VERSION_PATCH 26) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index 181905d2e52..cecb1137e34 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '23.5.9' + s.version = '23.5.26' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index be5a6f0c082..5564e03961e 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -57,7 +57,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 08e41059ac8..347712caa42 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 23.5.9 +version: 23.5.26 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/goldens/csharp/Galaxy.cs b/goldens/csharp/Galaxy.cs index e2faf71467f..7925ce573fd 100644 --- a/goldens/csharp/Galaxy.cs +++ b/goldens/csharp/Galaxy.cs @@ -10,7 +10,7 @@ public struct Galaxy : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Galaxy GetRootAsGalaxy(ByteBuffer _bb) { return GetRootAsGalaxy(_bb, new Galaxy()); } public static Galaxy GetRootAsGalaxy(ByteBuffer _bb, Galaxy obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/goldens/csharp/Universe.cs b/goldens/csharp/Universe.cs index 5d8515f91e9..16b5b9c87cd 100644 --- a/goldens/csharp/Universe.cs +++ b/goldens/csharp/Universe.cs @@ -10,7 +10,7 @@ public struct Universe : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Universe GetRootAsUniverse(ByteBuffer _bb) { return GetRootAsUniverse(_bb, new Universe()); } public static Universe GetRootAsUniverse(ByteBuffer _bb, Universe obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool VerifyUniverse(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, UniverseVerify.Verify); } diff --git a/goldens/java/Galaxy.java b/goldens/java/Galaxy.java index 2893b4cd04b..bcf139f3daa 100644 --- a/goldens/java/Galaxy.java +++ b/goldens/java/Galaxy.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Galaxy extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Galaxy getRootAsGalaxy(ByteBuffer _bb) { return getRootAsGalaxy(_bb, new Galaxy()); } public static Galaxy getRootAsGalaxy(ByteBuffer _bb, Galaxy obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/goldens/java/Universe.java b/goldens/java/Universe.java index 03ebb32652e..400c91a694b 100644 --- a/goldens/java/Universe.java +++ b/goldens/java/Universe.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Universe extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Universe getRootAsUniverse(ByteBuffer _bb) { return getRootAsUniverse(_bb, new Universe()); } public static Universe getRootAsUniverse(ByteBuffer _bb, Universe obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/goldens/kotlin/Galaxy.kt b/goldens/kotlin/Galaxy.kt index d3e077fec4a..5f2228d8472 100644 --- a/goldens/kotlin/Galaxy.kt +++ b/goldens/kotlin/Galaxy.kt @@ -32,7 +32,7 @@ class Galaxy : Table() { return if(o != 0) bb.getLong(o + bb_pos) else 0L } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsGalaxy(_bb: ByteBuffer): Galaxy = getRootAsGalaxy(_bb, Galaxy()) fun getRootAsGalaxy(_bb: ByteBuffer, obj: Galaxy): Galaxy { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/goldens/kotlin/Universe.kt b/goldens/kotlin/Universe.kt index 8ea42da8c8c..3438171795e 100644 --- a/goldens/kotlin/Universe.kt +++ b/goldens/kotlin/Universe.kt @@ -45,7 +45,7 @@ class Universe : Table() { val o = __offset(6); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsUniverse(_bb: ByteBuffer): Universe = getRootAsUniverse(_bb, Universe()) fun getRootAsUniverse(_bb: ByteBuffer, obj: Universe): Universe { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/goldens/swift/basic_generated.swift b/goldens/swift/basic_generated.swift index 4175dcbdf20..7ea2d68b680 100644 --- a/goldens/swift/basic_generated.swift +++ b/goldens/swift/basic_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Galaxy: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -41,7 +41,7 @@ public struct Galaxy: FlatBufferObject, Verifiable { public struct Universe: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index 7c68871123d..26d4c65bbcf 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -53,7 +53,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index d457d59fb93..5c4cae791cf 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -141,7 +141,7 @@ #define FLATBUFFERS_VERSION_MAJOR 23 #define FLATBUFFERS_VERSION_MINOR 5 -#define FLATBUFFERS_VERSION_REVISION 9 +#define FLATBUFFERS_VERSION_REVISION 26 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 6dd697dfb20..96e9315acd6 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index 11301d7f0a6..eea7d2dc28c 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 23.5.9 + 23.5.26 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index a44c4607cb5..2374575c268 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_5_9() {} + public static void FLATBUFFERS_23_5_26() {} } /// @endcond diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Enum.java b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java index 98dcc6847e0..953090e236c 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Enum.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Enum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Enum getRootAsEnum(ByteBuffer _bb) { return getRootAsEnum(_bb, new Enum()); } public static Enum getRootAsEnum(ByteBuffer _bb, Enum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java index 32ae17bca3d..d65711e13f5 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class EnumVal extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static EnumVal getRootAsEnumVal(ByteBuffer _bb) { return getRootAsEnumVal(_bb, new EnumVal()); } public static EnumVal getRootAsEnumVal(ByteBuffer _bb, EnumVal obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Field.java b/java/src/main/java/com/google/flatbuffers/reflection/Field.java index a5d3c08e433..45be68e7b4f 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Field.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Field.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Field extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Field getRootAsField(ByteBuffer _bb) { return getRootAsField(_bb, new Field()); } public static Field getRootAsField(ByteBuffer _bb, Field obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java index 9ab6a50eefe..8b22030711d 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class KeyValue extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static KeyValue getRootAsKeyValue(ByteBuffer _bb) { return getRootAsKeyValue(_bb, new KeyValue()); } public static KeyValue getRootAsKeyValue(ByteBuffer _bb, KeyValue obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Object.java b/java/src/main/java/com/google/flatbuffers/reflection/Object.java index 14ea9c7d8e0..382532c824c 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Object.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Object.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Object extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Object getRootAsObject(ByteBuffer _bb) { return getRootAsObject(_bb, new Object()); } public static Object getRootAsObject(ByteBuffer _bb, Object obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java index d3c34b3a67d..d517bb06c54 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class RPCCall extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static RPCCall getRootAsRPCCall(ByteBuffer _bb) { return getRootAsRPCCall(_bb, new RPCCall()); } public static RPCCall getRootAsRPCCall(ByteBuffer _bb, RPCCall obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Schema.java b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java index e9e04eaf9d4..98d05fbf780 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Schema.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Schema extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Schema getRootAsSchema(ByteBuffer _bb) { return getRootAsSchema(_bb, new Schema()); } public static Schema getRootAsSchema(ByteBuffer _bb, Schema obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean SchemaBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "BFBS"); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java index 59be57b8e2b..d009dc78fa2 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java @@ -26,7 +26,7 @@ */ @SuppressWarnings("unused") public final class SchemaFile extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb) { return getRootAsSchemaFile(_bb, new SchemaFile()); } public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb, SchemaFile obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Service.java b/java/src/main/java/com/google/flatbuffers/reflection/Service.java index 4ed60b98c83..42eebc10a80 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Service.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Service.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Service extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Service getRootAsService(ByteBuffer _bb) { return getRootAsService(_bb, new Service()); } public static Service getRootAsService(ByteBuffer _bb, Service obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Type.java b/java/src/main/java/com/google/flatbuffers/reflection/Type.java index 85c64ae9c77..107a0fde535 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Type.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Type.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Type extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Type getRootAsType(ByteBuffer _bb) { return getRootAsType(_bb, new Type()); } public static Type getRootAsType(ByteBuffer _bb, Type obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index bbbc043418c..51a5d6e8821 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_5_9() {} + public static void FLATBUFFERS_23_5_26() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index 67aaea26e29..7d4fab0f8ca 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 23.5.9 + 23.5.26 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index a226739aa0f..c5e304eb3ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "23.5.9", + "version": "23.5.26", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index 181fd067575..3993733224a 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"23.5.9" +__version__ = u"23.5.26" diff --git a/python/setup.py b/python/setup.py index 29b8cfe3c93..9f14512397d 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='23.5.9', + version='23.5.26', license='Apache 2.0', license_files='../LICENSE', author='Derek Bailey', diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 1735d67a13e..d56292ee3e0 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "23.5.9" +version = "23.5.26" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/samples/monster_generated.h b/samples/monster_generated.h index f528a1f1209..b1ea1c4f1f2 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 3def1e6d31d..1790dde5ac6 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -36,7 +36,7 @@ public enum MyGame_Sample_Equipment: UInt8, UnionEnum { public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _x: Float32 private var _y: Float32 @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -88,7 +88,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -200,7 +200,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { public struct MyGame_Sample_Weapon: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index a74214c8166..369460d7308 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -846,7 +846,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_23_5_9(); "; + code += "FLATBUFFERS_23_5_26(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 4eb8274f87e..252c60f6d9e 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -701,7 +701,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_23_5_9(); "; + code += "FLATBUFFERS_23_5_26(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 0578376c32a..ecea21edc9b 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -524,7 +524,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_23_5_9()"; }, + [&]() { writer += "Constants.FLATBUFFERS_23_5_26()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index 0bd9a227b63..17f3bf5fa49 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1845,7 +1845,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_23_5_9() }"; + return "static func validateVersion() { FlatBuffersVersion_23_5_26() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index 7bbebc17aa3..272c572e4a1 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_23_5_9() {} +public func FlatBuffersVersion_23_5_26() {} diff --git a/tests/64bit/evolution/v1_generated.h b/tests/64bit/evolution/v1_generated.h index 7cec2c28769..2fc923f3f70 100644 --- a/tests/64bit/evolution/v1_generated.h +++ b/tests/64bit/evolution/v1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace v1 { diff --git a/tests/64bit/evolution/v2_generated.h b/tests/64bit/evolution/v2_generated.h index d316d48a6b2..0b6a302fe7b 100644 --- a/tests/64bit/evolution/v2_generated.h +++ b/tests/64bit/evolution/v2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace v2 { diff --git a/tests/64bit/test_64bit_generated.h b/tests/64bit/test_64bit_generated.h index 92e1b5544d4..5650ad577ae 100644 --- a/tests/64bit/test_64bit_generated.h +++ b/tests/64bit/test_64bit_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); // For access to the binary schema that produced this file. diff --git a/tests/Abc.nim b/tests/Abc.nim index c516b93ba68..dbfa1aed454 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index 1ecb20fafe8..10b18f673fd 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index c42a59676a9..adc802f3329 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -44,7 +44,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 39dc2f49a20..280acdd3d3e 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index dec96185802..690504b1081 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -58,7 +58,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 0f43041b426..42e3287548f 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs index dc2e14b8758..8561f9a2f9a 100644 --- a/tests/KeywordTest/Table2.cs +++ b/tests/KeywordTest/Table2.cs @@ -13,7 +13,7 @@ public struct Table2 : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Table2 GetRootAsTable2(ByteBuffer _bb) { return GetRootAsTable2(_bb, new Table2()); } public static Table2 GetRootAsTable2(ByteBuffer _bb, Table2 obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index 630ba9fcdf8..0bd309c272e 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index db0d09f2524..d7fc542f1ac 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index 9c7abebcc7a..1eebaa879c9 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index 9df80056bdd..ce4a9299888 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 343927653ce..c4c0b8d3d4f 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index 4a836ccb0a8..1aa588c7631 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 6ba5fe8f10b..8de0ebdcd1f 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index 54821e8ee23..21b7d63e8aa 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index cdf1324c060..d18c80b7c89 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 8b6d275d192..d688e401e1c 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index ef88e73b270..5185db12e5b 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index 6bca6b7532e..d4d59e01ed0 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index e624876c57b..90956ca178f 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index 4259a5f6407..3864c706431 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index 1d249233c44..5a63921ed31 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index e6bf8150d6f..fb4c9e744a7 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index 92029f74d2e..f049dea83b2 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -24,7 +24,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index 73f24ff4e5a..dec2848d46c 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -1002,7 +1002,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index cbe55b2bdc7..774adac6a8e 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index aaef2ec5c94..04f043cbd1c 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index 0bdb319b846..798b2792582 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 764116ddda3..3ff5ae5de49 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index d2cb1fbb21b..0749f9cd009 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index a8215588303..db614f93f8d 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index c122943a145..59d53a5e7c1 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -48,7 +48,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index ef56b0f3ecb..be8fa90fe96 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index 677e050975f..3c5d82046d7 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index 9f3171c7d60..8c04f1469e9 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 6608d4f3ea7..6472e83b36f 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 4b5a3ceed6c..756220c831c 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -73,7 +73,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index 2779e1f5b05..23475223fc1 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index 0661e10a29f..e52699c84b2 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index aac41a0bcfd..f34d651693e 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index 12710a31761..a2a6071f1e2 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index 02dd0271ec6..ea72dcc2f46 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index 70612986323..e091411f3c5 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index 85fe0bfafa5..1786a1b3609 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index 5f382e3c490..8f100457cb5 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index 69e7358d8b6..c7bc4d983f0 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index cffa777d65b..1ad3c7c336e 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index 01223adcb2f..a21a46051b0 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -43,7 +43,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index 55575937fa4..ed208f01080 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index c6c49e64a0f..dad59fc0115 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index badac13bb67..abc4dea7d35 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index 2e5f22b1bd6..c56875cd835 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index 975a69c15af..4ae5f3d7aa2 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -215,7 +215,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index 6bcc7a38850..c647d7b9481 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index 56b4b5203b5..c596405cd82 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index 385ad2c406b..941078c1c23 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 3c086038363..74330dc4895 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index d5a1e016346..833a76b7a33 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 51b1b8bec76..7488a26f3e4 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index efc62b60a15..9f8a4ca0248 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -29,7 +29,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index accb0d781b9..4cf966cee41 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index 7ed2d3954a6..b976a748878 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index 9b03918b0ec..83077ee74d2 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index da801e5eddb..61749df963e 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index 69e1ba0b100..8ba2ee31c67 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -29,7 +29,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index 1c3e2b81ef2..619de51c127 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index 8f7e3972a56..6554d2c1bea 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index 92b4e3e7f43..63a689a31cf 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index f575002a5a7..a518e1466ea 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index 172944b0745..bcc1d10694a 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -187,7 +187,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index 00fc19df814..3a49948a381 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index 83cac1a24c7..7daf7228649 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index 0cac73ba3ac..22cd508906f 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index a4aad4fb6de..e597325dfa4 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index ba0774e6b9a..0ed6d7b1efa 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index 1ccfb1d8679..973ddc15612 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index 991bafb7e79..e6bac7f70a0 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index 8d7cbab3546..6c761d059d2 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index ab85519000a..0bf7e760293 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index b39e257ef0e..8573580f887 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : ]# diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 54fa1a29abc..4863ea2c547 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index f30ba0b2b4a..92f6e5a5f72 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 4f65d37d165..64bf358da7f 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 34888d5a140..80e75416515 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index f0adefe6077..32aae375fcb 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 1da14edcb0a..6763522750a 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index ebe02d009ff..017c682450e 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 5c89973c2d2..77b34181954 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); // For access to the binary schema that produced this file. diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index a9e8adaf2a8..f07d5eff895 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index a9e8adaf2a8..f07d5eff895 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index a9e8adaf2a8..f07d5eff895 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index ce2115358d2..fa09fee63ba 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index c1d54e16da7..6fda3c7892b 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 8f6ea4f3200..3565c9cb8d5 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -44,7 +44,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 8111ac7ff3a..98866c74593 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 6f006da1374..3357ff35bbd 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index f0a59cb9dd5..a69cfdb6613 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -39,7 +39,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index 4ea03309f04..7d7033ba1ba 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 08c320f4c18..3cc33a0ab39 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index bd484b84be9..6040a2339e8 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -79,7 +79,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index fa480cbed33..7d1ed5ae0fa 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 2c451037bb5..98fc18c5f8e 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index 7c355c317b7..efcfe30fb5b 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -48,7 +48,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index b4499d455ac..1671a738aa9 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index a046b0b2faf..40659a19e4c 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index b49b5a8e6b1..6843ce11f8e 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 7b5f941cec7..43779c0c868 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index 6114b5b398a..32be9bedeef 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index 17a689834b8..f84c506b270 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index 6a1991dd7da..29c601495c8 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index 2e40b149bbc..3e6757320eb 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index f615336270e..a178b4266f4 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -209,7 +209,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index 0df28bd2b76..de8544a601b 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.5.9 + flatc version: 23.5.26 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 50fc68bab0d..51a0c8818c3 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index 9d7f52866fd..a51cb5461d7 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index cc2288716cf..65725e9ba8a 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index d0dd8715836..d3d279b3702 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -155,7 +155,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index 629f4bf02c4..e198e99af32 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index 161bf0b273f..9ed52b3002c 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index 9d7f52866fd..a51cb5461d7 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index aba865d2ad4..6abaaf113e8 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index f1e985c4eb0..f7c179f4b67 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index a7fa205283e..13598192072 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index 9df75a18347..e35bf6024c2 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -405,7 +405,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -486,7 +486,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index 14cfa2159e5..bc991923cc2 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_5_9() } + static func validateVersion() { FlatBuffersVersion_23_5_26() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index a1e6d57e509..a33b39d3fbe 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool VerifyCollision(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, CollisionVerify.Verify); } diff --git a/tests/union_underlying_type_test_generated.h b/tests/union_underlying_type_test_generated.h index f70af50a432..c2642f06a6f 100644 --- a/tests/union_underlying_type_test_generated.h +++ b/tests/union_underlying_type_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); namespace UnionUnderlyingType { diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index c1d54863af2..7a38e8620a7 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -189,7 +189,7 @@ public struct IntValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static IntValue GetRootAsIntValue(ByteBuffer _bb) { return GetRootAsIntValue(_bb, new IntValue()); } public static IntValue GetRootAsIntValue(ByteBuffer _bb, IntValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -250,7 +250,7 @@ public struct Collide : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Collide GetRootAsCollide(ByteBuffer _bb) { return GetRootAsCollide(_bb, new Collide()); } public static Collide GetRootAsCollide(ByteBuffer _bb, Collide obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -365,7 +365,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool VerifyCollision(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, CollisionVerify.Verify); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index 10ac17c0a6a..1990670e06b 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index e8690236a09..2a4fa23a6ce 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index 00f442cf63d..a623f8d1f02 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -41,7 +41,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index 0f7df58e424..4b1d160db2a 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index 91671000a8f..8209c945b12 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index 18ef62e263f..d1e4ba79414 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -41,7 +41,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index 1edfc349522..8e75f7c532f 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index a98a0005183..78695ca316e 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_9(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_26(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index 098dc7d2ac8..9d97a19355a 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -79,7 +79,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_5_9() + fun validateVersion() = Constants.FLATBUFFERS_23_5_26() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 467fbfb8a70..99eabb985fe 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 5 && - FLATBUFFERS_VERSION_REVISION == 9, + FLATBUFFERS_VERSION_REVISION == 26, "Non-compatible flatbuffers version included"); struct Attacker;