WriteJSONL writes one JSON object per line to w and returns the count.
(w io.Writer, msgs []models.Message)
| 99 | |
| 100 | // WriteJSONL writes one JSON object per line to w and returns the count. |
| 101 | func WriteJSONL(w io.Writer, msgs []models.Message) (int, error) { |
| 102 | bw := bufio.NewWriter(w) |
| 103 | turns := ToTurns(msgs) |
| 104 | for _, t := range turns { |
| 105 | line, err := json.Marshal(t) |
| 106 | if err != nil { |
| 107 | return 0, err |
| 108 | } |
| 109 | if _, err := bw.Write(line); err != nil { |
| 110 | return 0, err |
| 111 | } |
| 112 | if err := bw.WriteByte('\n'); err != nil { |
| 113 | return 0, err |
| 114 | } |
| 115 | } |
| 116 | return len(turns), bw.Flush() |
| 117 | } |