Я пытаюсь разделить нечетный поток последовательного порта, который разделяет строки с возвратом каретки \r
и иногда \r\n
.BufReader
имеет функцию lines
, но разделяется только на \n
или \r\n
.Существует функция .read_until(...)
, но она работает только для одного терминатора.
Основываясь на реализации стандартной библиотеки , я начал объединять некоторыебиты, но я еще не получил его для компиляции.Я надеюсь, что я делаю это правильно "Rust way".Регулярные выражения кажутся слишком дорогими для потока байтов.
Пример ввода:
Heading:\r\nLine 1\rLine 2\rLine 3\r\nEnd
Когда вы используете lines()
на этом входе, вы получите три строки, потому что \r
не считается ограничителем строки:
Heading:
Line 1\rLine 2\rLine 2\rLine 3
End