///|
fn main {
  let first = @nmea.NmeaFrame::new(36, "GP", "TXT", ["one"]).encode()
  let second = @nmea.NmeaFrame::new(36, "GN", "TXT", ["two"]).encode()
  let input = first + second
  let decoder = @nmea.StreamDecoder::new()
  let results = []
  for item in decoder.push(@ascii.encode(input[:9])) {
    results.push(item)
  }
  for item in decoder.push(@ascii.encode(input[9:])) {
    results.push(item)
  }
  guard results.length() == 2 && results[0].record_index() == 0 else {
    abort("stream decoder did not preserve both records")
  }
  println(
    "records=2 talkers=" +
    results[0].value().unwrap().talker() +
    "," +
    results[1].value().unwrap().talker(),
  )
}