Haskell Language
Google 프로토콜 버퍼
수색…
비고
Haskell에서 프로토콜 버퍼를 사용하려면 htprotoc
패키지를 설치해야합니다 :
이제 $HOME/.local/bin/
에서 hprotoc
실행 파일을 찾아야합니다.
간단한 .proto 파일 만들기, 작성 및 사용
먼저 간단한 .proto
파일 인 person.proto
package Protocol;
message Person {
required string firstName = 1;
required string lastName = 2;
optional int32 age = 3;
}
저장 후에 우리는 프로젝트를 실행할 때 사용할 수있는 하스켈 파일을 만들 수 있습니다.
$HOME/.local/bin/hprotoc --proto_path=. --haskell_out=. person.proto
다음과 비슷한 결과가 나옵니다.
Loading filepath: "/<path-to-project>/person.proto"
All proto files loaded
Haskell name mangling done
Recursive modules resolved
./Protocol/Person.hs
./Protocol.hs
Processing complete, have a nice day.
hprotoc
은 우리의 haskell 프로젝트로 간단하게 가져올 수있는 Person.hs
와 함께 현재 디렉토리에 새로운 폴더 Protocol
을 생성 할 것입니다 :
import Protocol (Person)
다음 단계로 Stack add를 사용하는 경우
protocol-buffers
, protocol-buffers-descriptor
build-depends:
Protocol
.cabal
파일의 exposed-modules
에.
스트림에서 들어오는 메시지를 ByteString
메시지의 형식은 ByteString
입니다.
ByteString
(분명히 인코딩 된 "Person"데이터를 포함해야 함)을 우리의 Haskell 데이터 타입으로 변환하기 위해서, 우리가 import하는 messageGet
함수를 호출해야합니다.
import Text.ProtocolBuffers (messageGet)
다음을 사용하여 Person
유형의 값을 만들 수 있습니다.
transformRawPerson :: ByteString -> Maybe Person
transformRawPerson raw = case messageGet raw of
Left _ -> Nothing
Right (person, _) -> Just person
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow