Skip to content

Commit 5dfe395

Browse files
author
lmbsog0
committed
change implementation to a single simple function
1 parent 9b99b39 commit 5dfe395

File tree

1 file changed

+57
-81
lines changed

1 file changed

+57
-81
lines changed

cmd/a2l/a2l.go

+57-81
Original file line numberDiff line numberDiff line change
@@ -70,133 +70,109 @@ type grpcA2LImplType struct {
7070
a2l.UnimplementedA2LServer
7171
}
7272

73-
//export GetTreeFromA2LLocal
74-
func GetTreeFromA2LLocal(request []byte) (result *a2l.RootNodeType, errString *string) {
75-
if tree, parseError := getTreeFromString(string(request)); parseError == nil {
76-
result = tree
77-
} else {
78-
errStringValue := parseError.Error()
79-
errString = &errStringValue
80-
}
81-
82-
return result, errString
83-
}
84-
8573
func (s *grpcA2LImplType) GetTreeFromA2L(_ context.Context, request *a2l.TreeFromA2LRequest) (result *a2l.TreeResponse, err error) {
86-
var treeResult *a2l.RootNodeType
87-
var errString *string
74+
var tree *a2l.RootNodeType
75+
var parseError error
8876

89-
treeResult, errString = GetTreeFromA2LLocal(request.A2L)
77+
result = &a2l.TreeResponse{}
9078

91-
return &a2l.TreeResponse{Tree: treeResult, Error: errString}, err
79+
if tree, parseError = getTreeFromString(string(request.A2L)); parseError == nil {
80+
result.Tree = tree
81+
} else {
82+
errString := parseError.Error()
83+
result.Error = &errString
84+
}
85+
86+
return result, err
9287
}
9388

94-
//export GetJSONFromTreeLocal
95-
func GetJSONFromTreeLocal(request *a2l.RootNodeType, indent *uint32, allowPartial *bool, emitUnpopulated *bool) (result []byte, errString *string) {
89+
func (s *grpcA2LImplType) GetJSONFromTree(_ context.Context, request *a2l.JSONFromTreeRequest) (result *a2l.JSONResponse, err error) {
9690
var rawData []byte
9791
var indentedData []byte
9892
var parseError error
99-
indentValue := ""
100-
allowPartialValue := false
101-
emitUnpopulatedValue := false
93+
indent := ""
94+
allowPartial := false
95+
emitUnpopulated := false
10296

103-
if indent != nil {
104-
for i := uint32(0); i < *indent; i++ {
105-
indentValue += " "
97+
result = &a2l.JSONResponse{}
98+
99+
if request.Indent != nil {
100+
for i := uint32(0); i < *request.Indent; i++ {
101+
indent += " "
106102
}
107103
}
108104

109-
if allowPartial != nil {
110-
allowPartialValue = *allowPartial
105+
if request.AllowPartial != nil {
106+
allowPartial = *request.AllowPartial
111107
}
112108

113-
if emitUnpopulated != nil {
114-
emitUnpopulatedValue = *emitUnpopulated
109+
if request.EmitUnpopulated != nil {
110+
emitUnpopulated = *request.EmitUnpopulated
115111
}
116112

117113
opt := protojson.MarshalOptions{
118-
AllowPartial: allowPartialValue,
119-
EmitUnpopulated: emitUnpopulatedValue}
114+
AllowPartial: allowPartial,
115+
EmitUnpopulated: emitUnpopulated}
120116

121-
if rawData, parseError = opt.Marshal(request); parseError == nil {
117+
if rawData, parseError = opt.Marshal(request.Tree); parseError == nil {
122118
// Note: see https://github.com/golang/protobuf/issues/1121
123119
buffer := bytes.NewBuffer(indentedData)
124-
if err := json.Indent(buffer, rawData, "", indentValue); err == nil {
125-
result = buffer.Bytes()
120+
if err = json.Indent(buffer, rawData, "", indent); err == nil {
121+
result.Json = buffer.Bytes()
126122
} else {
127-
errStringValue := err.Error()
128-
errString = &errStringValue
123+
errString := err.Error()
124+
result.Error = &errString
129125
}
130126
} else {
131-
errStringValue := parseError.Error()
132-
errString = &errStringValue
127+
errString := parseError.Error()
128+
result.Error = &errString
133129
}
134130

135-
return result, errString
136-
}
137-
138-
func (s *grpcA2LImplType) GetJSONFromTree(_ context.Context, request *a2l.JSONFromTreeRequest) (result *a2l.JSONResponse, err error) {
139-
var byteResult []byte
140-
var errString *string
141-
142-
byteResult, errString = GetJSONFromTreeLocal(request.Tree, request.Indent, request.AllowPartial, request.EmitUnpopulated)
143-
144-
return &a2l.JSONResponse{Json: byteResult, Error: errString}, err
131+
return result, err
145132
}
146133

147-
//export GetTreeFromJSONLocal
148-
func GetTreeFromJSONLocal(request []byte, allowPartial *bool) (result *a2l.RootNodeType, errString *string) {
134+
func (s *grpcA2LImplType) GetTreeFromJSON(_ context.Context, request *a2l.TreeFromJSONRequest) (result *a2l.TreeResponse, err error) {
149135
var parseError error
150-
allowPartialValue := false
136+
allowPartial := false
151137

152-
if allowPartial != nil {
153-
allowPartialValue = *allowPartial
138+
result = &a2l.TreeResponse{Tree: &a2l.RootNodeType{}}
139+
140+
if request.AllowPartial != nil {
141+
allowPartial = *request.AllowPartial
154142
}
155143

156144
opt := protojson.UnmarshalOptions{
157-
AllowPartial: allowPartialValue,
145+
AllowPartial: allowPartial,
158146
}
159147

160-
if parseError = opt.Unmarshal(request, result); parseError != nil {
161-
errStringValue := parseError.Error()
162-
errString = &errStringValue
148+
if parseError = opt.Unmarshal(request.Json, result.Tree); parseError != nil {
149+
errString := parseError.Error()
150+
result.Error = &errString
163151
}
164152

165-
return result, errString
153+
return result, err
166154
}
167155

168-
func (s *grpcA2LImplType) GetTreeFromJSON(_ context.Context, request *a2l.TreeFromJSONRequest) (result *a2l.TreeResponse, err error) {
169-
var treeResult *a2l.RootNodeType
170-
var errString *string
171-
172-
treeResult, errString = GetTreeFromJSONLocal(request.Json, request.AllowPartial)
173-
174-
return &a2l.TreeResponse{Tree: treeResult, Error: errString}, err
175-
}
156+
func (s *grpcA2LImplType) GetA2LFromTree(_ context.Context, request *a2l.A2LFromTreeRequest) (result *a2l.A2LResponse, err error) {
157+
indent := ""
158+
sorted := false
176159

177-
//export GetA2LFromTreeLocal
178-
func GetA2LFromTreeLocal(request *a2l.RootNodeType, indent *uint32, sorted *bool) (result []byte, err error) {
179-
indentValue := ""
180-
sortedValue := false
181-
if indent != nil {
182-
for i := uint32(0); i < *indent; i++ {
183-
indentValue += " "
160+
if request.Indent != nil {
161+
for i := uint32(0); i < *request.Indent; i++ {
162+
indent += " "
184163
}
185164
}
186165

187-
if sorted != nil {
188-
sortedValue = *sorted
166+
if request.Sorted != nil {
167+
sorted = *request.Sorted
189168
}
190169

191-
return []byte(request.MarshalA2L(0, indentValue, sortedValue)), nil
170+
return &a2l.A2LResponse{A2L: []byte(request.Tree.MarshalA2L(0, indent, sorted))}, nil
192171
}
193172

194-
func (s *grpcA2LImplType) GetA2LFromTree(_ context.Context, request *a2l.A2LFromTreeRequest) (result *a2l.A2LResponse, err error) {
195-
var byteResult []byte
196-
197-
byteResult, err = GetA2LFromTreeLocal(request.Tree, request.Indent, request.Sorted)
198-
199-
return &a2l.A2LResponse{A2L: byteResult}, err
173+
//export GetJSONByteArrayFromA2LByteArray
174+
func GetJSONByteArrayFromA2LByteArray(a2lByteArray []byte) {
175+
_ = a2lByteArray
200176
}
201177

202178
var serverMutex sync.Mutex

0 commit comments

Comments
 (0)