Buffer が大きいので役割ごとに分割してみる。
http get の結果
とりあえずここから手をつける。
- CurrentURL
- HttpResponse
- ContentType
- Body bytes
js的にはこう
async function get(url) => Promise<HttpResponse>;
この HttpResponse から Buffer を作るという設計変更をする。 現状は、
- buf = new Buffer
- http_get(buf)
- parse_html(buf)
- return buf
という感じで 早期に Buffer が登場(Bufferにhttp headerを直接投入する)して物置と化しています。
Buffer管理
- LinkList: prev, next
- LinkBuffer
Line
HtmlParse 後。 utf8になって、2次元整形済み。 content と term width の2つで確定
- Line[]
terminal の描画情報
- cursor 位置
- scroll 位置