// string_ops.hako — Common string utility functions
// Responsibility: Basic string operations used across the codebase
// Non-goals: JSON parsing, complex text processing

static box StringOps {
  // Find substring starting from position
  // Returns: index of first occurrence at/after pos, or -1 if not found
  index_of_from(text, needle, pos) {
    if text == null { return -1 }
    if pos < 0 { pos = 0 }
    local n = text.length()
    if pos >= n { return -1 }
    local m = needle.length()
    if m <= 0 { return pos }
    local i = pos
    local limit = n - m
    loop (i <= limit) {
      if text.substring(i, i + m) == needle { return i }
      i = i + 1
    }
    return -1
  }
}
