From 79515504624092b46e43f5b31a64521cdde3ebaa Mon Sep 17 00:00:00 2001 From: bufan <821869798@qq.com> Date: Sat, 10 Jun 2023 16:39:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dgen=5Fmetabug=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9B=B4=E5=A4=9A=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/cs_bin_meta/big_data.toml | 15 +++ examples/cs_bin_meta/csv_test.toml | 13 ++ examples/excels/big_data.xlsx | Bin 0 -> 40016 bytes .../proj_cs_bin/src/gen/Tblbig_data.cs | 122 ++++++++++++++++++ .../proj_cs_bin/src/gen/Tblcsv_test.cs | 104 +++++++++++++++ .../proj_cs_bin/table_bytes/big_data.bytes | Bin 0 -> 16384 bytes .../proj_cs_bin/table_bytes/csv_test.bytes | Bin 0 -> 1024 bytes meta/gen_meta.go | 22 +++- 8 files changed, 273 insertions(+), 3 deletions(-) create mode 100644 examples/cs_bin_meta/big_data.toml create mode 100644 examples/cs_bin_meta/csv_test.toml create mode 100644 examples/excels/big_data.xlsx create mode 100644 examples/projects/proj_cs_bin/src/gen/Tblbig_data.cs create mode 100644 examples/projects/proj_cs_bin/src/gen/Tblcsv_test.cs create mode 100644 examples/projects/proj_cs_bin/table_bytes/big_data.bytes create mode 100644 examples/projects/proj_cs_bin/table_bytes/csv_test.bytes diff --git a/examples/cs_bin_meta/big_data.toml b/examples/cs_bin_meta/big_data.toml new file mode 100644 index 0000000..c03c71f --- /dev/null +++ b/examples/cs_bin_meta/big_data.toml @@ -0,0 +1,15 @@ +target = "big_data" +mode = "" +source_type = "excel" + +sources = [ + { file_name = "big_data.xlsx", sheet_name = "Sheet1" }, +] + +fields = [ + { active = true, sname = "id" , tname = "id" , type = "int" , key = 1, desc = "id" }, + { active = true, sname = "name" , tname = "name" , type = "string" , key = 0, desc = "名字" }, + { active = true, sname = "age" , tname = "age" , type = "int" , key = 0, desc = "年龄" }, + { active = true, sname = "course" , tname = "course" , type = "[]int" , key = 0, desc = "学科id" }, + { active = true, sname = "score" , tname = "score" , type = "map[int]int" , key = 0, desc = "成绩组" }, +] diff --git a/examples/cs_bin_meta/csv_test.toml b/examples/cs_bin_meta/csv_test.toml new file mode 100644 index 0000000..8459988 --- /dev/null +++ b/examples/cs_bin_meta/csv_test.toml @@ -0,0 +1,13 @@ +target = "csv_test" +mode = "" +source_type = "csv" + +sources = [ + { file_name = "csv_test.csv", sheet_name = "" }, +] + +fields = [ + { active = true, sname = "id" , tname = "id" , type = "int" , key = 1, desc = "id" }, + { active = true, sname = "name" , tname = "name" , type = "string" , key = 0, desc = "名字" }, + { active = true, sname = "age" , tname = "age" , type = "int" , key = 0, desc = "年龄" }, +] diff --git a/examples/excels/big_data.xlsx b/examples/excels/big_data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b577ee2f77db1861d147cf092ccf51205628087a GIT binary patch literal 40016 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≻scZe{?LJ= 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 TU>am#-~mE4U@{h&3E}|&QJZ^< literal 0 HcmV?d00001 diff --git a/examples/projects/proj_cs_bin/src/gen/Tblbig_data.cs b/examples/projects/proj_cs_bin/src/gen/Tblbig_data.cs new file mode 100644 index 0000000..92d4eee --- /dev/null +++ b/examples/projects/proj_cs_bin/src/gen/Tblbig_data.cs @@ -0,0 +1,122 @@ +using Serialization; + +using System.Collections.Generic; + +namespace CfgTable +{ + + public partial class Tblbig_data + { + + private readonly Dictionary _dataMap; + private readonly List _dataList; + + + public Tblbig_data(ByteBuf _buf) + { + //first read common data + _TbCommonbig_data _commonData = null; + var commonSize = _buf.ReadSize(); + if( commonSize > 0) + { + _commonData = new _TbCommonbig_data(_buf); + } + + var size = _buf.ReadSize(); + _dataMap = new Dictionary(16); + _dataList = new List(size); + + for (int i = 0; i < size; i++) + { + Cfgbig_data _v; + _v = Cfgbig_data.DeserializeCfgbig_data(_buf, _commonData); + _dataList.Add(_v); + _dataMap[_v.id] = _v; + } + + PostInit(); + } + + public int DataCount => _dataList.Count; + public Dictionary DataMap => _dataMap; + public List DataList => _dataList; + + public Cfgbig_data GetDataById(int __k0) { if (_dataMap.TryGetValue(__k0, out var __tmpv0)) { return __tmpv0; } return null; } + + ///

+ /// post process table + /// + partial void PostInit(); + + } + + public partial class Cfgbig_data + { + private Cfgbig_data(ByteBuf _buf, _TbCommonbig_data _commonData) + { + + id = _buf.ReadInt(); + { int dataIndex = _buf.ReadInt() - 1; name = _commonData._field0[dataIndex]; } + age = _buf.ReadInt(); + { int dataIndex = _buf.ReadInt() - 1; course = _commonData._field1[dataIndex]; } + { int dataIndex = _buf.ReadInt() - 1; score = _commonData._field2[dataIndex]; } + PostInit(); + } + + internal static Cfgbig_data DeserializeCfgbig_data(ByteBuf _buf, _TbCommonbig_data _commonData) + { + return new Cfgbig_data(_buf, _commonData); + } + + /// + /// id + /// + public int id { get; private set; } + + /// + /// 名字 + /// + public string name { get; private set; } + + /// + /// 年龄 + /// + public int age { get; private set; } + + /// + /// 学科id + /// + public int[] course { get; private set; } + + /// + /// 成绩组 + /// + public Dictionary score { get; private set; } + + + /// + /// post process table + /// + partial void PostInit(); + } + + /// + /// internal common data.Optimize memory + /// + internal class _TbCommonbig_data + { + + internal string[] _field0 { get; private set; } + internal int[][] _field1 { get; private set; } + internal Dictionary[] _field2 { get; private set; } + internal _TbCommonbig_data(ByteBuf _buf) + { + + {int __n0 = _buf.ReadSize(); _field0 = new string[__n0];for(var __i0 = 0 ; __i0 < __n0 ; __i0++ ){string __v0; __v0 = _buf.ReadString(); _field0[__i0] = __v0;} } + {int __n0 = _buf.ReadSize(); _field1 = new int[__n0][];for(var __i0 = 0 ; __i0 < __n0 ; __i0++ ){int[] __v0; {int __n1 = _buf.ReadSize(); __v0 = new int[__n1];for(var __i1 = 0 ; __i1 < __n1 ; __i1++ ){int __v1; __v1 = _buf.ReadInt(); __v0[__i1] = __v1;} } _field1[__i0] = __v0;} } + {int __n0 = _buf.ReadSize(); _field2 = new Dictionary[__n0];for(var __i0 = 0 ; __i0 < __n0 ; __i0++ ){Dictionary __v0; { int __n1 = _buf.ReadSize(); var __f1 = new Dictionary (__n1 * 3 / 2) ; __v0 = __f1; for(var __i1 = 0 ; __i1 < __n1 ; __i1++ ) {int __k1; __k1 = _buf.ReadInt(); int __v1; __v1 = _buf.ReadInt(); __f1.Add(__k1, __v1); } } _field2[__i0] = __v0;} } + } + + } + +} diff --git a/examples/projects/proj_cs_bin/src/gen/Tblcsv_test.cs b/examples/projects/proj_cs_bin/src/gen/Tblcsv_test.cs new file mode 100644 index 0000000..ef96135 --- /dev/null +++ b/examples/projects/proj_cs_bin/src/gen/Tblcsv_test.cs @@ -0,0 +1,104 @@ +using Serialization; + +using System.Collections.Generic; + +namespace CfgTable +{ + + public partial class Tblcsv_test + { + + private readonly Dictionary _dataMap; + private readonly List _dataList; + + + public Tblcsv_test(ByteBuf _buf) + { + //first read common data + _TbCommoncsv_test _commonData = null; + var commonSize = _buf.ReadSize(); + if( commonSize > 0) + { + _commonData = new _TbCommoncsv_test(_buf); + } + + var size = _buf.ReadSize(); + _dataMap = new Dictionary(16); + _dataList = new List(size); + + for (int i = 0; i < size; i++) + { + Cfgcsv_test _v; + _v = Cfgcsv_test.DeserializeCfgcsv_test(_buf, _commonData); + _dataList.Add(_v); + _dataMap[_v.id] = _v; + } + + PostInit(); + } + + public int DataCount => _dataList.Count; + public Dictionary DataMap => _dataMap; + public List DataList => _dataList; + + public Cfgcsv_test GetDataById(int __k0) { if (_dataMap.TryGetValue(__k0, out var __tmpv0)) { return __tmpv0; } return null; } + + /// + /// post process table + /// + partial void PostInit(); + + } + + public partial class Cfgcsv_test + { + private Cfgcsv_test(ByteBuf _buf, _TbCommoncsv_test _commonData) + { + + id = _buf.ReadInt(); + name = _buf.ReadString(); + age = _buf.ReadInt(); + PostInit(); + } + + internal static Cfgcsv_test DeserializeCfgcsv_test(ByteBuf _buf, _TbCommoncsv_test _commonData) + { + return new Cfgcsv_test(_buf, _commonData); + } + + /// + /// id + /// + public int id { get; private set; } + + /// + /// 名字 + /// + public string name { get; private set; } + + /// + /// 年龄 + /// + public int age { get; private set; } + + + /// + /// post process table + /// + partial void PostInit(); + } + + /// + /// internal common data.Optimize memory + /// + internal class _TbCommoncsv_test + { + + internal _TbCommoncsv_test(ByteBuf _buf) + { + + } + + } + +} diff --git a/examples/projects/proj_cs_bin/table_bytes/big_data.bytes b/examples/projects/proj_cs_bin/table_bytes/big_data.bytes new file mode 100644 index 0000000000000000000000000000000000000000..53829bfe5470642e983767cbf5b4308c232b06dd GIT binary patch literal 16384 zcmeHLWqTb*($&n=Ob^|Ab-}U)7FZToXt6EHk}XCHElaXwSyGteF!ywanK>KSBpYVt zWW&jB7&jZ*&@%H%dQbaTydQMG%rku(s!p9cRXv999=7|?eRt0ueDL18t?$o2=i6(p zvA%ukhHoA_%Q|%T>>>N^ZT;}@!)g!@HHayA(EOo?9;oK2f4;l!d<>bhhaGm%-s%No ze2FGIYVs&|hn_=g+A}JXsI{+oJylHhX400V>@dw`R@YNiL5fE86~p;7;58Ao=9Go0 zaQlV`mE_mY(XNcnQ8HGB2WflX))Xo>Hce8Sx1ySI+iTa+OlszKDl&Ja)3)>#ZM3p4 zkx!is)zf5_mfDmZp30{3rj{L4Hdx(B!>O#93Q}{{(L{P#32pIPawxyBL!<6k#Y!68 z-cvyBgIYFO*{p;HR#sKhRK3?mRnw^>loQ!lNpn+cBa~UtU{lu2&Pr+wr+3nf-8D{I zQ&|$_ZcNRfnoy@nRplvZG~PFrMRlxWgi3}-hG}Fn5u&V)wmRBc*jh*#wx!e7bv4P< zHNQH85=C7^^|eW(G@L#&K#3Wv>f5Slc6dmqs?eHQ za+9)KC^TBNn%d?g?G#$G!J+!*_9W`+-q=PFEjvzgZaXNC?YRDivzhoB`PVI83 zpeuJhHMgywrADt{g4!!tAJt_Kuczr)S}mFNu~y0`8)Q`9Y1q^;Jhqkm@!AX;E7R7} zU};YhStCVhw02@@Cv}gnNFpyh*h%?~GrMTMV@*D_>JcC4U|#%D_r(2DpBt>q5P)VVDt z4Y(ugDLS@xip+_uAJ@l$6$yX_b~!&j946EO%gziu#N>((FV5_3rHJq0VUX08Q1- zt|O~)D4%NPQi{l`TDOfFaucbvv7*qW(Uh77n%x9f$GThds4u6wn2M6tjL_;7hp23% zvzVqE`SnZ)EKQB+*(y@%oLUvPiaPXcH_jfZRB~4 zKI=Euj3WLZ+b=0qQwfMn{CDX>_NYnh9dV`guMeuibsH4luHO$G0N@LO}r;_CS4Eckm z46&m6u%TdHJDrUUGp|WOWoe#cXn2q{MG4GE22B#nCdyDACKkU8S_%=`FJ=oL%K^ zCF@zws@R$eR!wb{RAUcRQ7zM|?K-WxhHYS*YK@JSTSxWA>J4@SHEj$xnmg(voAj;* zyGc)P^qRHuP2tUqHQ8It?B-aDp1;{|b-T7u8_R2P+TG;VNQXJm#yYjpcDu`+>xg$# zK_~U-T9?&pWOti=W^E7a_a}NoTlK6yHsG}OM+VvKR%3{<0e9Hz8?;CC#vyBz%;Cs3 zdvwGZW2;7^+l}dM_P8A#3r*OG?dBv>GPc9anP5}a=E=ykxpjxV)7Pe=Ge*yJY?n8& zGd63b%=mLU+hxpq-mJYBt)FxDcEa=8K1SMJ{=U}S-qHQ6mHU|cYbpCi4lrl-vk!DC z_NRla$N~1je*8e=5Ub%J=TI%@U^>j2JS2WNYdX~0?L-fY9HI3d?j7mp?)H!JRvr;Q zTJJlOj`8Y`qGRo`qvOYse~f;-ZyoELV9g(Ao~Rce@1Nv!oM4=6G@NLhV)UNmbFTNF z?DD{wJSD`1Q^`4TsXIIf@l&aV3y+^>_HgO*)7=&P)MS2!)`<~*rswg~O@5X>%g>1L zv$ZLHW}Kfx>-kv`ey-Wg&o=mZZXG`-!p}Fd__%31V7*67ugN`f-t|B zt>PCFzr>#77cqV*E8`a%{4y_tUy|ULdu9Ami(g^xZJu9e@EbIYX#7Tx`1K~gN#DkAi0~hq zMf}D%zuDW$Z*ur8UN%Pft#&iNIm&-x&huMrew)?IZ;kTX?H-KqJG?1=o5Sxkr}^zJ zzl+lO9R|Ofdib4jevg~Y@ACP*dOp9K@%!9W{2rg*uaEG1ZT^5?$?uEv2hBNtzr`Oi zGWY`?f7r44gTx=P_u>y({86ieKb+u?>DBxZk3UXL{85uXVOR0T7=O~7;E%`nQ-;sZj=vJ;uhSTRHO}8aq+g5hH{sap5&kp3oxc&` zKetx#H{<**s~RKxZ5tyY{*G10-_rTJG{@g|`Flo!zvJ=u-F*J8&Ob0i{5_L@Xh-?` z5&n_e%s(LhF%bOF+!!u_&=>;{`WBdmsigJ z5$6APyD`H5Y4-9*UdXPP=22DGkFPed+S$u&7OdH`#W?-Aid_fN!ua7TiflF)nk`{P+ z4Ym(_r;aaKL5PL_>vx^x#?;!T`T8{UXTH-7vsTdE6$f9K_=_xi%yV5 z(|pkgvVF|-gB)j;FIvGGR>K#JAlD*w!dkKw1bJG9ddo)wEhPs9tW(V_)V8TT*BS6V z5)}FKd?^$Z8yond9+c2#g-fY1sZ1)x zpqe6lF%i`0n)1EY&rvh$+${=_4Qzrh+QCM%T=`ee5QlisU?NTwG}=?@giV&I9!<>Q zi^)MVxPGUA5DrGzUTSbu z*~y}A2*wl_V!?Lo3BSgze6{C<6;h8$s!;LX;Y{&`NHFDeE2F2KAqC4$s3GVw zV<6r}u*(@$c+6V1!fMWfEoLxpBf>1$OWVa4tYB|8pa%ERG_`JDD&Pz8U_ZzUOxoXp zn`Ur;4%V>XKnLh}!9mPaQx5jmsbdfEv(#pXf&@$9;4oz%1&8aENRVK+4$ek`BOpXr zek5C~3_QxOS0p&v(iN=7AQ>@ute&RuKTfOWixeDhgNbHvf|kb@%-}@Y!WZn|BxgqD z&&h6vvicMjQjl{4#5q&cdPL=XjdSeQgQ%$6i7Mw-~U+{y|&A7t)3=a`=f-_O~ zu;46m)y%W?7UkGE8WJZQoNEA{cyON8ty1%R!U+^yfHDRuU1;p3Y`MsQEmm+buttn7 zf#x97F16>?;AL_>@&KkiL`WlrZS27sEf~$-n^>(!}qE5KR=uwbgi#ND=9Tlm! zAF(|QxgKHzTyD^r!um#kl>+i6Jynt6$Nolz?#)hxI`$T;L=D~wTR{1rIJxTd+w6o| zaJ!eMK)yp;t)g+%B@*_ zP+g!8&zc}R3!bx}q7*#u;RFg^aA%cCKlO4{R9kk&ssaD{?DDbcrrKWi%# zW`AL6>g}&4W_rQj3>*{={;te5f`6d9gMt6lW)vX*LX`k_|7}21_254~bSV=2R|EO1 z;C~EQCxQiiTIIu{jXfj5k_F>qBFXo`0-;%O%n~|l05OH(m7q!pQjv}dQ^|}eET-rt znCXM9!iMNC#f1aW!4y}KodmvRAgIDum4Jy5JX*3uSh0sh#8g@!l2uTnBI<#yu87&0 zYC+tE1eqeC?NlbM@UUlGq*zc5PpmX7_1`Lj5?LaZl9Bx)&B|1R>3|0ZWf(}juvkqd zkPw;HTD2}~kF1Go^qnvw2lBKK6Kix;oJ6it#fVtzpz3-ePlMc($k$dX{|XF5%oBws z%AYCLX(*yGQRG3(by4i4qV9ig2F_N4*|4At+i*c4s8g4+@Jw0U2IeZg^7AA3{Hp!zeVlR=s+1vvB}?} z2AdqzXA;e3p|W!`feaC`MH%mj76J>RqSf21X11xCZ;N)+IQZV7Lp*HJY2rL4x{Ng{ z4&4TFIwE?|X2IKDMSWfLDH7SD-$pm$h^=0(LVf^o$DV_VXC#I^JmO-Q5C9S*Xgm;y zQ3tsh729065*1@sfkJ7!1s^OiZmU!i6W$7S`lJK7u*42l1(u5`6U>T=X>^ky-%b@< zSK#iZEZgPQtMg`^Cbiid+rx=@4J=3&dr??fjeDGeZXYj`FC>e7oi=sCet;GK?T;D& zz8v7$3Z(;~S(tf{feM=}4n~g;;}5}Y2mc+)NSSmPE?IaSuG)~O*zI+wwlp@ zSp*g&#M!#5Kt9I;QEYK8VJ3<5bm*=x&etGaVR3*(GQX zz`9F~P3rW^Ae{K`a%(^_S6Vd zl%0;a-ikr2#0`*90C}U1<-WLyQWQUbjMN5~ZU*@P$StO;9=GC}3Il)Q&8vvrhU*G^ zznx(@i91xJBjQd32j|`84=X$Gb`d{c+@nFyNZjkJS4iB4wh30>Z?!80dqC9{Up&ah z)q;mK$V^;3Onu7EM@)Fj#G|TdPKd{FtHueBL+fDf6N;u0@g$miEPo0&4CLR_4m!!LFEGWs zKA05}@2Nx&iT5EMSnz>Xi#}d_sKu3kA6X45{2!x0gZiHsg9_G9fhXed3x?`ziOLA?**)<)q%ZjLdkbMS#2>H#zW))J!K6RoVuP7~ z_5cABe}P8Aq`v|XJpShIRF?hSL~uOu4;==Y;-BU^1^K@`#33U7jRFR3{f`UMhQxmn z6>#@|gaXFI0--RFSVV(`DN7F2jbxG!YDA>w4S~>7_d8&OG*Bs*JV_|fOPVy%HZ8@Z z#XwVAGWfn2mbQ=O5$PC+ACs=HNF+T~EiCE#;8H?{aHU*|%dmq0kc>cumn@l#&I1QU z9k5)NF%1c1$~ZnHEXHJlHNjlDLI>v~G6fj`TUKh5$T+#mz@EBHH6akbOhX5Vndz<) z7MY<#3qo?WQVm;X;>xvP%Pb_xqA9a=h(|=`K#Uh+a?PFulDQUYYC^6hpzFyzTxnou zzNJJ?7HCQbWg*fKMy%6O(JfhIbt+qmbrmC7qRMVmmMZm*$THkCu)JK)MRLjYN?&wY zp%+(8hO9dI`(aT5l5a>8J0!6d#G0hb*Gkeopy58rp;W&KQ#a*tR+S>(@kk&XdjeVx z?0KRR_>erw28qJ*WDh7=@)UeXgh?FtTaYNQ5ospTfU2#ffu21iPsIXI<1|76i_6p1 z4Mmq{;Nu7oJQL?35zbOYSeIvevufQrCQ3Pz=lbX|Bl0|au>?xz<3kOAya2h06ur=z zPzx@y_XPD~2YD2im-uKyEqN)xLf|gb(MRg?avS^%%PUZ)Vds?&s*@wHG7>Q-ZqT>Qj_?_qhHkF>Ys?KlXJJB(_D{GEynn!Jl4RLSygmZQ+U2W0}g+>0-= z0P8*t0`JTF6(>yjfR0Acln<&#m&u15h`1{s_CiYX9xh3-!+gfT2% z)EL?Fr9C$&`7%RY(Bv!XI>zLy_)dz$Uo%kUb@@7$;lDR1Tjk`N9x_IkKLh@7@8=B6 zkIJ`DYY^|Zec0~FcMRlmLcR-PVZnP!VVQj2fO19T2YxG=@ky-;Qs)C C*~l{h literal 0 HcmV?d00001 diff --git a/examples/projects/proj_cs_bin/table_bytes/csv_test.bytes b/examples/projects/proj_cs_bin/table_bytes/csv_test.bytes new file mode 100644 index 0000000000000000000000000000000000000000..04c3d42e03df7687aaaeac58fdd29e00bcc69ea0 GIT binary patch literal 1024 zcmZQzX5@U{*Zp$W?x$-f@G!Bx*t+%U?Af}^Y|rNQJ)f{loM9A 0 && len(rowData[0]) > 0 { + firstData := rowData[0][0] + rowData[0][0] = strings.TrimPrefix(firstData, "\uFEFF") + } + return rowData, nil }