2016-01-29 39 views
1

我在Haskell中構建PB對象,我不想指定可選字段。這可能嗎?使用可選字段在haskell中構建protobuf對象

在最簡單的情況下,我有一個標頭字段,其中有一個failure_message,我想在大多數情況下爲空。我有一些代碼,其中一個工人工作與正常狀態響應:

 let repMsg = ProtoMsg.WorkerResponse.WorkerResponse { 
      header = ProtoMsg.ReqResponse.ReqResponse { 
       ProtoMsg.ReqResponse.status = Just ProtoMsg.Status.OK, 
       failure_message = Nothing 
      } 
     } 

有沒有一種方法可將所有未指定字段沒有一些如何?在這種情況下,它不是那麼糟糕,但是當有更多的可選字段時,它會變得煩人。

回答

2

您可以創建一個包含您想要設置的字段的記錄值,然後更新該記錄。

noFailureMsg = ProtoMsg.ReqResponse.ReqResponse { 
      failure_message = Nothing 
     } 

let repMsg = ProtoMsg.WorkerResponse.WorkerResponse { 
    header = noFailureMsg { 
     ProtoMsg.ReqResponse.status = Just ProtoMsg.Status.OK 
    } 
} 

我不完全確定這是你在找什麼。

+0

這絕對是一種改進。我主要想知道是否有一些我可以設置的標誌,或者我可以使用的技巧,所以在未指定的字段上使用「Nothing」。我是Haskell的新手,所以我不知道。構建具有10個不同字段的消息是煩人的,其中只有1個被設置。 –

相關問題