This commit is contained in:
aozhiwei 2023-08-11 15:32:00 +08:00
parent 3018aac80f
commit 7921db0615
2 changed files with 93 additions and 0 deletions

View File

@ -1,3 +1,10 @@
package mtb
type Server struct {
listen_port int32
}
func (this *Server) GetListenPort() int32 {
return this.listen_port
}

View File

@ -176,9 +176,95 @@ func init() {
`;
this.mtPb.nested.mt.nestedArray.forEach(
(item) => {
data += `type ${item.name} struct {\n`;
item.fieldsArray.forEach
(
(item2, index) => {
data += ` ${item2.name} ` + this.dumpClassField(item, item2, index) + `\n`;
}
);
data += '}';
}
);
data += '\n\n';
this.mtPb.nested.mt.nestedArray.forEach(
(item) => {
item.fieldsArray.forEach
(
(item2, index) => {
const newName = this.converCaseName(item2.name);
data += `func (this *${item.name}) Get${newName}() ` +
this.dumpClassField(item, item2, index) + ` {\n`;
data += ` return this.${item2.name}\n`;
data += `}\n`;
}
);
}
);
fs.writeFileSync('./mtb/mtb.auto_gen.go', data);
}
dumpClassField(cls, field, index) {
const fieldName = field.name;
switch (field.type) {
case 'int32':
{
return `int32`;
}
break;
case 'int64':
{
return `int64`;
}
break;
case 'float':
{
return `float32`;
}
break;
case 'double':
{
return `float64`;
}
break;
case 'string':
{
return `string`;
}
break;
default:
console.log(field);
assert(false, 'error field type:' + field.type);
break;
}
}
converCaseName(name) {
let newName = '';
let preIs_ = false;
for (let i = 0; i < name.length; ++i) {
if (i == 0) {
newName += name[i].toUpperCase();
preIs_ = name[i] == '_';
} else {
if (preIs_) {
if (name[i] != '_') {
newName += name[i].toUpperCase();
}
} else {
if (name[i] != '_') {
newName += name[i];
}
}
preIs_ = name[i] == '_';
}
}
return newName;
}
}
(new PBTools).init();