12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182(*****************************************************************************)(* *)(* Open Source License *)(* Copyright (c) 2018 Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)(* *)(* Permission is hereby granted, free of charge, to any person obtaining a *)(* copy of this software and associated documentation files (the "Software"),*)(* to deal in the Software without restriction, including without limitation *)(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *)(* and/or sell copies of the Software, and to permit persons to whom the *)(* Software is furnished to do so, subject to the following conditions: *)(* *)(* The above copyright notice and this permission notice shall be included *)(* in all copies or substantial portions of the Software. *)(* *)(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*)(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *)(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *)(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*)(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *)(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *)(* DEALINGS IN THE SOFTWARE. *)(* *)(*****************************************************************************)typet=int32typevoting_period=tinclude(Compare.Int32:Compare.Swithtypet:=t)letencoding=Data_encoding.int32letppppflevel=Format.fprintfppf"%ld"levelletrpc_arg=letconstructvoting_period=Int32.to_stringvoting_periodinletdestructstr=matchInt32.of_stringstrwith|exception_->Error"Cannot parse voting period"|voting_period->Okvoting_periodinRPC_arg.make~descr:"A voting period"~name:"voting_period"~construct~destruct()letroot=0lletsucc=Int32.succletto_int32l=lletof_int32_exnl=ifCompare.Int32.(l>=0l)thenlelseinvalid_arg"Voting_period_repr.of_int32"typekind=|Proposal|Testing_vote|Testing|Promotion_voteletkind_encoding=letopenData_encodinginunion~tag_size:`Uint8[case(Tag0)~title:"Proposal"(constant"proposal")(functionProposal->Some()|_->None)(fun()->Proposal);case(Tag1)~title:"Testing_vote"(constant"testing_vote")(functionTesting_vote->Some()|_->None)(fun()->Testing_vote);case(Tag2)~title:"Testing"(constant"testing")(functionTesting->Some()|_->None)(fun()->Testing);case(Tag3)~title:"Promotion_vote"(constant"promotion_vote")(functionPromotion_vote->Some()|_->None)(fun()->Promotion_vote);]