parseRelativeSessionRef checks if ref is a relative session reference (e.g., "-1", "-2") and returns the offset and whether it's a relative reference. Returns (1, true) for "-1", (2, true) for "-2", etc. Returns (0, false) if not a relative reference.
(ref string)
| 39 | // Returns (1, true) for "-1", (2, true) for "-2", etc. |
| 40 | // Returns (0, false) if not a relative reference. |
| 41 | func parseRelativeSessionRef(ref string) (offset int, isRelative bool) { |
| 42 | if !strings.HasPrefix(ref, "-") { |
| 43 | return 0, false |
| 44 | } |
| 45 | |
| 46 | // Try to parse as negative integer |
| 47 | n, err := strconv.Atoi(ref) |
| 48 | if err != nil || n >= 0 { |
| 49 | return 0, false |
| 50 | } |
| 51 | |
| 52 | return -n, true |
| 53 | } |
| 54 | |
| 55 | // ResolveSessionID resolves a session reference to an actual session ID. |
| 56 | // Supports relative references like "-1" (last session), "-2" (second to last), etc. |
no outgoing calls