MCPcopy Create free account
hub / github.com/araddon/qlbridge / subStringEval

Function subStringEval

expr/builtins/string.go:186–217  ·  view source on GitHub ↗
(ctx expr.EvalContext, vals []value.Value)

Source from the content-addressed store, hash-verified

184 return subStringEval, nil
185}
186func subStringEval(ctx expr.EvalContext, vals []value.Value) (value.Value, bool) {
187
188 if vals[0] == nil || vals[0].Err() || vals[0].Nil() {
189 return nil, false
190 }
191 if vals[1] == nil || vals[1].Err() || vals[1].Nil() {
192 return nil, false
193 }
194
195 inputStr := vals[0].ToString()
196
197 idx, ok := value.ValueToInt(vals[1])
198 if !ok || idx < 0 {
199 return nil, false
200 }
201 if len(inputStr) < idx {
202 return nil, false
203 }
204
205 if len(vals) == 3 {
206 idx2, ok := value.ValueToInt(vals[2])
207 if !ok || idx2 < 0 {
208 return nil, false
209 }
210 if len(inputStr) < idx2 {
211 return nil, false
212 }
213 return value.NewStringValue(inputStr[idx:idx2]), true
214 }
215
216 return value.NewStringValue(inputStr[idx:]), true
217}
218
219// Strip a string, removing leading/trailing whitespace
220//

Callers

nothing calls this directly

Calls 5

ValueToIntFunction · 0.92
NewStringValueFunction · 0.92
ErrMethod · 0.65
NilMethod · 0.65
ToStringMethod · 0.65

Tested by

no test coverage detected