암호를 나타내는 문자열을 고정 길이의 10 바이트 필드로 serialize해야한다는 프로토콜을 구현하고 있습니다. 이 작업을 수행하기 위해 Data.Cereal을 사용하고 있습니다. 여기에 나의 가장 최근의 이동이다 :Data.Cereal 또는 Data.Binary를 사용하여 문자열 직렬화
runPut $ putPassword "Friend"
결과에 :
"\NUL\NUL\NUL\NUL\NUL\NUL\NUL\nFriend\NUL\NUL\NUL\NUL"
ByteStrings에
padText :: Int -> Text -> Text
padText fieldLen = T.justifyLeft fieldLen '\NUL'
putPassword :: Putter Password
putPassword = put . TE.encodeUtf8 . padText 10
넣어 그것을 만드는 인코딩 무엇의 전면에 추가로 8 바이트 덩어리를 앞에 추가
여분의 청크가 필요하지 않습니다. 왜 이런 식으로 행동합니까?
누구나 원래의 10 바이트 만 직렬화하는 방법을 알고 있습니까?