Uri template parse error

class val URITemplateParseError
  """
  Describes why a URI template string failed to parse.

  Contains a human-readable error message and the byte offset in the
  template string where the error was detected.
  """
  let message: String val
  let offset: USize

  new val create(message': String val, offset': USize) =>
    """Create a parse error with the given message and byte offset."""
    message = message'
    offset = offset'

  fun string(): String iso^ =>
    """Format as "offset N: message"."""
    let num: String val = offset.string()
    let out = recover iso
      String(7 + num.size() + 2 + message.size())
    end
    out.>append("offset ")
      .>append(num)
      .>append(": ")
      .>append(message)
    consume out