ParameterModesFromString returns a ParameterMode slice from the given string. It is assumed that this string was originally created using Procedure.ParameterModesAsString.
(str string)
| 459 | // ParameterModesFromString returns a ParameterMode slice from the given string. It is assumed that this string was |
| 460 | // originally created using Procedure.ParameterModesAsString. |
| 461 | func ParameterModesFromString(str string) ([]ParameterMode, error) { |
| 462 | if len(str) == 0 { |
| 463 | return nil, nil |
| 464 | } |
| 465 | modeStrings := strings.Split(str, ",") |
| 466 | modes := make([]ParameterMode, len(modeStrings)) |
| 467 | for i, modeString := range modeStrings { |
| 468 | switch modeString { |
| 469 | case "in": |
| 470 | modes[i] = ParameterMode_IN |
| 471 | case "out": |
| 472 | modes[i] = ParameterMode_OUT |
| 473 | case "inout": |
| 474 | modes[i] = ParameterMode_INOUT |
| 475 | case "variadic": |
| 476 | modes[i] = ParameterMode_VARIADIC |
| 477 | default: |
| 478 | return nil, errors.Errorf("`%s` is not a valid parameter argmode, it may be one of the following: in, out, inout, variadic", modeString) |
| 479 | } |
| 480 | } |
| 481 | return modes, nil |
| 482 | } |
no test coverage detected