-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
对于提交: 55b8025 input 重写, 支持反斜线换行, 支持引号(只支持这两个)
这样写我认为有一些问题:
- PointerState 在逻辑上不清晰, 如何理解其里面带有的String?
- 流程上, 似乎是先把字符追加到 PointerState 里的 String, 然后在切换状态的时候再将 PointerState 里存储的 String 整个追加到 OldPointerState 中, OldPointerState 才相当于是真正的缓存. 这样是不是太绕了, 能不能直接向 OldPointerState 中追加字符.
- 可以看出来是个状态机, 但是每个状态不是一个单独的类型, 而是 enum PointerState 里的一个值. 这样就导致所有状态的行为, 实际上都写到了 Decoder 里, 能不能给每个状态都创建一个类?
- 对于 EscapeSequence 和 EscapeSequenceInStr 两个状态是几乎一样的, 几乎只是返回状态不同. 实际上他们是回到上个状态, 有没有办法合并成一个状态.
- EOF 没处理
- 错误类型用 anyhow 这个库会不会好一些?
- 代码里116行提到的问题, 可以用 replace_with 这个库解决.
- 测试代码也没有写
Metadata
Metadata
Assignees
Labels
No labels