releases/go/smithy-dafny-standard-library/JSON_Serializer/JSON_Serializer.go (477 lines of code) (raw):

// Package JSON_Serializer // Dafny module JSON_Serializer compiled into Go package JSON_Serializer import ( os "os" m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" m_JSON_Errors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Errors" m_JSON_Grammar "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Grammar" m_JSON_Serializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer_ByteStrConversion" m_JSON_Spec "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Spec" m_JSON_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors" m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core" m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings" m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers" m_JSON_Utils_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Seq" m_JSON_Utils_Str "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str" m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion" m_JSON_Utils_Str_CharStrEscaping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrEscaping" m_JSON_Utils_Vectors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Vectors" m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core" m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers" m_JSON_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Values" m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" ) var _ = os.Args var _ _dafny.Dummy__ var _ m__System.Dummy__ var _ m_Wrappers.Dummy__ var _ m_Relations.Dummy__ var _ m_Seq_MergeSort.Dummy__ var _ m__Math.Dummy__ var _ m_Seq.Dummy__ var _ m_BoundedInts.Dummy__ var _ m__Unicode.Dummy__ var _ m_Functions.Dummy__ var _ m_Utf8EncodingForm.Dummy__ var _ m_Utf16EncodingForm.Dummy__ var _ m_UnicodeStrings.Dummy__ var _ m_FileIO.Dummy__ var _ m_GeneralInternals.Dummy__ var _ m_MulInternalsNonlinear.Dummy__ var _ m_MulInternals.Dummy__ var _ m_Mul.Dummy__ var _ m_ModInternalsNonlinear.Dummy__ var _ m_DivInternalsNonlinear.Dummy__ var _ m_ModInternals.Dummy__ var _ m_DivInternals.Dummy__ var _ m_DivMod.Dummy__ var _ m_Power.Dummy__ var _ m_Logarithm.Dummy__ var _ m_StandardLibraryInterop.Dummy__ var _ m_StandardLibrary_UInt.Dummy__ var _ m_StandardLibrary_Sequence.Dummy__ var _ m_StandardLibrary_String.Dummy__ var _ m_StandardLibrary.Dummy__ var _ m_Streams.Dummy__ var _ m_Sorting.Dummy__ var _ m_HexStrings.Dummy__ var _ m_GetOpt.Dummy__ var _ m_FloatCompare.Dummy__ var _ m_Base64.Dummy__ var _ m_Base64Lemmas.Dummy__ var _ m_Actions.Dummy__ var _ m_JSON_Utils_Views_Core.Dummy__ var _ m_JSON_Utils_Views_Writers.Dummy__ var _ m_JSON_Utils_Lexers_Core.Dummy__ var _ m_JSON_Utils_Lexers_Strings.Dummy__ var _ m_JSON_Utils_Cursors.Dummy__ var _ m_JSON_Utils_Parsers.Dummy__ var _ m_JSON_Utils_Str_CharStrConversion.Dummy__ var _ m_JSON_Utils_Str_CharStrEscaping.Dummy__ var _ m_JSON_Utils_Str.Dummy__ var _ m_JSON_Utils_Seq.Dummy__ var _ m_JSON_Utils_Vectors.Dummy__ var _ m_JSON_Errors.Dummy__ var _ m_JSON_Values.Dummy__ var _ m_JSON_Spec.Dummy__ var _ m_JSON_Grammar.Dummy__ var _ m_JSON_Serializer_ByteStrConversion.Dummy__ type Dummy__ struct{} // Definition of class Default__ type Default__ struct { dummy byte } func New_Default___() *Default__ { _this := Default__{} return &_this } type CompanionStruct_Default___ struct { } var Companion_Default___ = CompanionStruct_Default___{} func (_this *Default__) Equals(other *Default__) bool { return _this == other } func (_this *Default__) EqualsGeneric(x interface{}) bool { other, ok := x.(*Default__) return ok && _this.Equals(other) } func (*Default__) String() string { return "JSON_Serializer.Default__" } func (_this *Default__) ParentTraits_() []*_dafny.TraitID { return [](*_dafny.TraitID){} } var _ _dafny.TraitOffspring = &Default__{} func (_static *CompanionStruct_Default___) Bool(b bool) m_JSON_Utils_Views_Core.View__ { return m_JSON_Utils_Views_Core.Companion_View___.OfBytes((func() _dafny.Sequence { if b { return m_JSON_Grammar.Companion_Default___.TRUE() } return m_JSON_Grammar.Companion_Default___.FALSE() })()) } func (_static *CompanionStruct_Default___) CheckLength(s _dafny.Sequence, err m_JSON_Errors.SerializationError) m_Wrappers.Outcome { return m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((s).Cardinality())).Cmp(m_BoundedInts.Companion_Default___.TWO__TO__THE__32()) < 0, err) } func (_static *CompanionStruct_Default___) String(str _dafny.Sequence) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Result = m_JSON_Spec.Companion_Default___.EscapeToUTF8(str, _dafny.Zero) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { var _1_bs _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) _ = _1_bs var _2_valueOrError1 m_Wrappers.Outcome = Companion_Default___.CheckLength(_1_bs, m_JSON_Errors.Companion_SerializationError_.Create_StringTooLong_(str)) _ = _2_valueOrError1 if (_2_valueOrError1).IsFailure() { return (_2_valueOrError1).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Jstring_.Create_JString_(m_JSON_Grammar.Companion_Default___.DOUBLEQUOTE(), m_JSON_Utils_Views_Core.Companion_View___.OfBytes(_1_bs), m_JSON_Grammar.Companion_Default___.DOUBLEQUOTE())) } } } func (_static *CompanionStruct_Default___) Sign(n _dafny.Int) m_JSON_Utils_Views_Core.View__ { return m_JSON_Utils_Views_Core.Companion_View___.OfBytes((func() _dafny.Sequence { if (n).Sign() == -1 { return _dafny.SeqOf(uint8(_dafny.Char('-'))) } return _dafny.SeqOf() })()) } func (_static *CompanionStruct_Default___) Int_k(n _dafny.Int) _dafny.Sequence { return m_JSON_Serializer_ByteStrConversion.Companion_Default___.OfInt__any(n, Companion_Default___.DIGITS(), Companion_Default___.MINUS()) } func (_static *CompanionStruct_Default___) Int(n _dafny.Int) m_Wrappers.Result { var _0_bs _dafny.Sequence = Companion_Default___.Int_k(n) _ = _0_bs var _1_valueOrError0 m_Wrappers.Outcome = Companion_Default___.CheckLength(_0_bs, m_JSON_Errors.Companion_SerializationError_.Create_IntTooLarge_(n)) _ = _1_valueOrError0 if (_1_valueOrError0).IsFailure() { return (_1_valueOrError0).PropagateFailure() } else { return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Utils_Views_Core.Companion_View___.OfBytes(_0_bs)) } } func (_static *CompanionStruct_Default___) Number(dec m_JSON_Values.Decimal) m_Wrappers.Result { var _pat_let_tv0 = dec _ = _pat_let_tv0 var _pat_let_tv1 = dec _ = _pat_let_tv1 var _0_minus m_JSON_Utils_Views_Core.View__ = Companion_Default___.Sign((dec).Dtor_n()) _ = _0_minus var _1_valueOrError0 m_Wrappers.Result = Companion_Default___.Int(m__Math.Companion_Default___.Abs((dec).Dtor_n())) _ = _1_valueOrError0 if (_1_valueOrError0).IsFailure() { return (_1_valueOrError0).PropagateFailure() } else { var _2_num m_JSON_Utils_Views_Core.View__ = (_1_valueOrError0).Extract().(m_JSON_Utils_Views_Core.View__) _ = _2_num var _3_frac m_JSON_Grammar.Maybe = m_JSON_Grammar.Companion_Maybe_.Create_Empty_() _ = _3_frac var _4_valueOrError1 m_Wrappers.Result = (func() m_Wrappers.Result { if ((dec).Dtor_e10()).Sign() == 0 { return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Maybe_.Create_Empty_()) } return func(_pat_let6_0 m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { return func(_5_e m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { return func(_pat_let7_0 m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { return func(_6_sign m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { return func(_pat_let8_0 m_Wrappers.Result) m_Wrappers.Result { return func(_7_valueOrError2 m_Wrappers.Result) m_Wrappers.Result { return (func() m_Wrappers.Result { if (_7_valueOrError2).IsFailure() { return (_7_valueOrError2).PropagateFailure() } return func(_pat_let9_0 m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { return func(_8_num m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Maybe_.Create_NonEmpty_(m_JSON_Grammar.Companion_Jexp_.Create_JExp_(_5_e, _6_sign, _8_num))) }(_pat_let9_0) }((_7_valueOrError2).Extract().(m_JSON_Utils_Views_Core.View__)) })() }(_pat_let8_0) }(Companion_Default___.Int(m__Math.Companion_Default___.Abs((_pat_let_tv1).Dtor_e10()))) }(_pat_let7_0) }(Companion_Default___.Sign((_pat_let_tv0).Dtor_e10())) }(_pat_let6_0) }(m_JSON_Utils_Views_Core.Companion_View___.OfBytes(_dafny.SeqOf(uint8(_dafny.Char('e'))))) })() _ = _4_valueOrError1 if (_4_valueOrError1).IsFailure() { return (_4_valueOrError1).PropagateFailure() } else { var _9_exp m_JSON_Grammar.Maybe = (_4_valueOrError1).Extract().(m_JSON_Grammar.Maybe) _ = _9_exp return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Jnumber_.Create_JNumber_(_0_minus, _2_num, m_JSON_Grammar.Companion_Maybe_.Create_Empty_(), _9_exp)) } } } func (_static *CompanionStruct_Default___) MkStructural(v interface{}) m_JSON_Grammar.Structural { return m_JSON_Grammar.Companion_Structural_.Create_Structural_(m_JSON_Grammar.Companion_Default___.EMPTY(), v, m_JSON_Grammar.Companion_Default___.EMPTY()) } func (_static *CompanionStruct_Default___) KeyValue(kv _dafny.Tuple) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.String((*(kv).IndexInt(0)).(_dafny.Sequence)) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { var _1_k m_JSON_Grammar.Jstring = (_0_valueOrError0).Extract().(m_JSON_Grammar.Jstring) _ = _1_k var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.Value((*(kv).IndexInt(1)).(m_JSON_Values.JSON)) _ = _2_valueOrError1 if (_2_valueOrError1).IsFailure() { return (_2_valueOrError1).PropagateFailure() } else { var _3_v m_JSON_Grammar.Value = (_2_valueOrError1).Extract().(m_JSON_Grammar.Value) _ = _3_v return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_JKeyValue_.Create_KeyValue_(_1_k, Companion_Default___.COLON(), _3_v)) } } } func (_static *CompanionStruct_Default___) MkSuffixedSequence(ds _dafny.Sequence, suffix m_JSON_Grammar.Structural, start _dafny.Int) _dafny.Sequence { var _0___accumulator _dafny.Sequence = _dafny.SeqOf() _ = _0___accumulator goto TAIL_CALL_START TAIL_CALL_START: if (start).Cmp(_dafny.IntOfUint32((ds).Cardinality())) >= 0 { return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) } else if (start).Cmp((_dafny.IntOfUint32((ds).Cardinality())).Minus(_dafny.One)) == 0 { return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(m_JSON_Grammar.Companion_Suffixed_.Create_Suffixed_((ds).Select((start).Uint32()).(interface{}), m_JSON_Grammar.Companion_Maybe_.Create_Empty_()))) } else { _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(m_JSON_Grammar.Companion_Suffixed_.Create_Suffixed_((ds).Select((start).Uint32()).(interface{}), m_JSON_Grammar.Companion_Maybe_.Create_NonEmpty_(suffix)))) var _in0 _dafny.Sequence = ds _ = _in0 var _in1 m_JSON_Grammar.Structural = suffix _ = _in1 var _in2 _dafny.Int = (start).Plus(_dafny.One) _ = _in2 ds = _in0 suffix = _in1 start = _in2 goto TAIL_CALL_START } } func (_static *CompanionStruct_Default___) Object(obj _dafny.Sequence) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer39 func(_dafny.Tuple) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { return func(arg43 interface{}) m_Wrappers.Result { return coer39(arg43.(_dafny.Tuple)) } }((func(_1_obj _dafny.Sequence) func(_dafny.Tuple) m_Wrappers.Result { return func(_2_v _dafny.Tuple) m_Wrappers.Result { return Companion_Default___.KeyValue(_2_v) } })(obj)), obj) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { var _3_items _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) _ = _3_items return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Bracketed_.Create_Bracketed_(Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.LBRACE()), Companion_Default___.MkSuffixedSequence(_3_items, Companion_Default___.COMMA(), _dafny.Zero), Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.RBRACE()))) } } func (_static *CompanionStruct_Default___) Array(arr _dafny.Sequence) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer40 func(m_JSON_Values.JSON) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { return func(arg44 interface{}) m_Wrappers.Result { return coer40(arg44.(m_JSON_Values.JSON)) } }((func(_1_arr _dafny.Sequence) func(m_JSON_Values.JSON) m_Wrappers.Result { return func(_2_v m_JSON_Values.JSON) m_Wrappers.Result { return Companion_Default___.Value(_2_v) } })(arr)), arr) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { var _3_items _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) _ = _3_items return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Bracketed_.Create_Bracketed_(Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.LBRACKET()), Companion_Default___.MkSuffixedSequence(_3_items, Companion_Default___.COMMA(), _dafny.Zero), Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.RBRACKET()))) } } func (_static *CompanionStruct_Default___) Value(js m_JSON_Values.JSON) m_Wrappers.Result { var _source0 m_JSON_Values.JSON = js _ = _source0 { if _source0.Is_Null() { return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Null_(m_JSON_Utils_Views_Core.Companion_View___.OfBytes(m_JSON_Grammar.Companion_Default___.NULL()))) } } { if _source0.Is_Bool() { var _0_b bool = _source0.Get_().(m_JSON_Values.JSON_Bool).B _ = _0_b return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Bool_(Companion_Default___.Bool(_0_b))) } } { if _source0.Is_String() { var _1_str _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_String).Str _ = _1_str var _2_valueOrError0 m_Wrappers.Result = Companion_Default___.String(_1_str) _ = _2_valueOrError0 if (_2_valueOrError0).IsFailure() { return (_2_valueOrError0).PropagateFailure() } else { var _3_s m_JSON_Grammar.Jstring = (_2_valueOrError0).Extract().(m_JSON_Grammar.Jstring) _ = _3_s return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_String_(_3_s)) } } } { if _source0.Is_Number() { var _4_dec m_JSON_Values.Decimal = _source0.Get_().(m_JSON_Values.JSON_Number).Num _ = _4_dec var _5_valueOrError1 m_Wrappers.Result = Companion_Default___.Number(_4_dec) _ = _5_valueOrError1 if (_5_valueOrError1).IsFailure() { return (_5_valueOrError1).PropagateFailure() } else { var _6_n m_JSON_Grammar.Jnumber = (_5_valueOrError1).Extract().(m_JSON_Grammar.Jnumber) _ = _6_n return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Number_(_6_n)) } } } { if _source0.Is_Object() { var _7_obj _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_Object).Obj _ = _7_obj var _8_valueOrError2 m_Wrappers.Result = Companion_Default___.Object(_7_obj) _ = _8_valueOrError2 if (_8_valueOrError2).IsFailure() { return (_8_valueOrError2).PropagateFailure() } else { var _9_o m_JSON_Grammar.Bracketed = (_8_valueOrError2).Extract().(m_JSON_Grammar.Bracketed) _ = _9_o return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Object_(_9_o)) } } } { var _10_arr _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_Array).Arr _ = _10_arr var _11_valueOrError3 m_Wrappers.Result = Companion_Default___.Array(_10_arr) _ = _11_valueOrError3 if (_11_valueOrError3).IsFailure() { return (_11_valueOrError3).PropagateFailure() } else { var _12_a m_JSON_Grammar.Bracketed = (_11_valueOrError3).Extract().(m_JSON_Grammar.Bracketed) _ = _12_a return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Array_(_12_a)) } } } func (_static *CompanionStruct_Default___) JSON(js m_JSON_Values.JSON) m_Wrappers.Result { var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.Value(js) _ = _0_valueOrError0 if (_0_valueOrError0).IsFailure() { return (_0_valueOrError0).PropagateFailure() } else { var _1_val m_JSON_Grammar.Value = (_0_valueOrError0).Extract().(m_JSON_Grammar.Value) _ = _1_val return m_Wrappers.Companion_Result_.Create_Success_(Companion_Default___.MkStructural(_1_val)) } } func (_static *CompanionStruct_Default___) DIGITS() _dafny.Sequence { return _dafny.SeqOf(uint8(_dafny.Char('0')), uint8(_dafny.Char('1')), uint8(_dafny.Char('2')), uint8(_dafny.Char('3')), uint8(_dafny.Char('4')), uint8(_dafny.Char('5')), uint8(_dafny.Char('6')), uint8(_dafny.Char('7')), uint8(_dafny.Char('8')), uint8(_dafny.Char('9'))) } func (_static *CompanionStruct_Default___) MINUS() uint8 { return uint8(_dafny.Char('-')) } func (_static *CompanionStruct_Default___) COLON() m_JSON_Grammar.Structural { return Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.COLON()) } func (_static *CompanionStruct_Default___) COMMA() m_JSON_Grammar.Structural { return Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.COMMA()) } // End of class Default__ // Definition of class Bytes32 type Bytes32 struct { } func New_Bytes32_() *Bytes32 { _this := Bytes32{} return &_this } type CompanionStruct_Bytes32_ struct { } var Companion_Bytes32_ = CompanionStruct_Bytes32_{} func (*Bytes32) String() string { return "JSON_Serializer.Bytes32" } // End of class Bytes32 func Type_Bytes32_() _dafny.TypeDescriptor { return type_Bytes32_{} } type type_Bytes32_ struct { } func (_this type_Bytes32_) Default() interface{} { return _dafny.EmptySeq } func (_this type_Bytes32_) String() string { return "JSON_Serializer.Bytes32" } func (_this *CompanionStruct_Bytes32_) Is_(__source _dafny.Sequence) bool { var _0_bs _dafny.Sequence = (__source) _ = _0_bs return (_dafny.IntOfUint32((_0_bs).Cardinality())).Cmp(m_BoundedInts.Companion_Default___.TWO__TO__THE__32()) < 0 } // Definition of class String32 type String32 struct { } func New_String32_() *String32 { _this := String32{} return &_this } type CompanionStruct_String32_ struct { } var Companion_String32_ = CompanionStruct_String32_{} func (*String32) String() string { return "JSON_Serializer.String32" } // End of class String32 func Type_String32_() _dafny.TypeDescriptor { return type_String32_{} } type type_String32_ struct { } func (_this type_String32_) Default() interface{} { return _dafny.EmptySeq.SetString() } func (_this type_String32_) String() string { return "JSON_Serializer.String32" } func (_this *CompanionStruct_String32_) Is_(__source _dafny.Sequence) bool { var _1_s _dafny.Sequence = (__source) _ = _1_s return (_dafny.IntOfUint32((_1_s).Cardinality())).Cmp(m_BoundedInts.Companion_Default___.TWO__TO__THE__32()) < 0 }