github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library@v0.2.0/JSON_Serializer/JSON_Serializer.go (about) 1 // Package JSON_Serializer 2 // Dafny module JSON_Serializer compiled into Go 3 4 package JSON_Serializer 5 6 import ( 7 os "os" 8 9 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 10 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 11 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 12 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 13 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 14 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 15 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 16 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 17 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 18 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 19 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 20 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 21 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 22 m_JSON_Errors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Errors" 23 m_JSON_Grammar "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Grammar" 24 m_JSON_Serializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer_ByteStrConversion" 25 m_JSON_Spec "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Spec" 26 m_JSON_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors" 27 m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core" 28 m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings" 29 m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers" 30 m_JSON_Utils_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Seq" 31 m_JSON_Utils_Str "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str" 32 m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion" 33 m_JSON_Utils_Str_CharStrEscaping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrEscaping" 34 m_JSON_Utils_Vectors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Vectors" 35 m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core" 36 m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers" 37 m_JSON_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Values" 38 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 39 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 40 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 41 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 42 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 43 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 44 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 45 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 46 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 47 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 48 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 49 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 50 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 51 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 52 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 53 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 54 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 55 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 56 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 57 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 58 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 59 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 60 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 61 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 62 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 63 ) 64 65 var _ = os.Args 66 var _ _dafny.Dummy__ 67 var _ m__System.Dummy__ 68 var _ m_Wrappers.Dummy__ 69 var _ m_Relations.Dummy__ 70 var _ m_Seq_MergeSort.Dummy__ 71 var _ m__Math.Dummy__ 72 var _ m_Seq.Dummy__ 73 var _ m_BoundedInts.Dummy__ 74 var _ m__Unicode.Dummy__ 75 var _ m_Functions.Dummy__ 76 var _ m_Utf8EncodingForm.Dummy__ 77 var _ m_Utf16EncodingForm.Dummy__ 78 var _ m_UnicodeStrings.Dummy__ 79 var _ m_FileIO.Dummy__ 80 var _ m_GeneralInternals.Dummy__ 81 var _ m_MulInternalsNonlinear.Dummy__ 82 var _ m_MulInternals.Dummy__ 83 var _ m_Mul.Dummy__ 84 var _ m_ModInternalsNonlinear.Dummy__ 85 var _ m_DivInternalsNonlinear.Dummy__ 86 var _ m_ModInternals.Dummy__ 87 var _ m_DivInternals.Dummy__ 88 var _ m_DivMod.Dummy__ 89 var _ m_Power.Dummy__ 90 var _ m_Logarithm.Dummy__ 91 var _ m_StandardLibraryInterop.Dummy__ 92 var _ m_StandardLibrary_UInt.Dummy__ 93 var _ m_StandardLibrary_Sequence.Dummy__ 94 var _ m_StandardLibrary_String.Dummy__ 95 var _ m_StandardLibrary.Dummy__ 96 var _ m_Streams.Dummy__ 97 var _ m_Sorting.Dummy__ 98 var _ m_HexStrings.Dummy__ 99 var _ m_GetOpt.Dummy__ 100 var _ m_FloatCompare.Dummy__ 101 var _ m_Base64.Dummy__ 102 var _ m_Base64Lemmas.Dummy__ 103 var _ m_Actions.Dummy__ 104 var _ m_JSON_Utils_Views_Core.Dummy__ 105 var _ m_JSON_Utils_Views_Writers.Dummy__ 106 var _ m_JSON_Utils_Lexers_Core.Dummy__ 107 var _ m_JSON_Utils_Lexers_Strings.Dummy__ 108 var _ m_JSON_Utils_Cursors.Dummy__ 109 var _ m_JSON_Utils_Parsers.Dummy__ 110 var _ m_JSON_Utils_Str_CharStrConversion.Dummy__ 111 var _ m_JSON_Utils_Str_CharStrEscaping.Dummy__ 112 var _ m_JSON_Utils_Str.Dummy__ 113 var _ m_JSON_Utils_Seq.Dummy__ 114 var _ m_JSON_Utils_Vectors.Dummy__ 115 var _ m_JSON_Errors.Dummy__ 116 var _ m_JSON_Values.Dummy__ 117 var _ m_JSON_Spec.Dummy__ 118 var _ m_JSON_Grammar.Dummy__ 119 var _ m_JSON_Serializer_ByteStrConversion.Dummy__ 120 121 type Dummy__ struct{} 122 123 // Definition of class Default__ 124 type Default__ struct { 125 dummy byte 126 } 127 128 func New_Default___() *Default__ { 129 _this := Default__{} 130 131 return &_this 132 } 133 134 type CompanionStruct_Default___ struct { 135 } 136 137 var Companion_Default___ = CompanionStruct_Default___{} 138 139 func (_this *Default__) Equals(other *Default__) bool { 140 return _this == other 141 } 142 143 func (_this *Default__) EqualsGeneric(x interface{}) bool { 144 other, ok := x.(*Default__) 145 return ok && _this.Equals(other) 146 } 147 148 func (*Default__) String() string { 149 return "JSON_Serializer.Default__" 150 } 151 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 152 return [](*_dafny.TraitID){} 153 } 154 155 var _ _dafny.TraitOffspring = &Default__{} 156 157 func (_static *CompanionStruct_Default___) Bool(b bool) m_JSON_Utils_Views_Core.View__ { 158 return m_JSON_Utils_Views_Core.Companion_View___.OfBytes((func() _dafny.Sequence { 159 if b { 160 return m_JSON_Grammar.Companion_Default___.TRUE() 161 } 162 return m_JSON_Grammar.Companion_Default___.FALSE() 163 })()) 164 } 165 func (_static *CompanionStruct_Default___) CheckLength(s _dafny.Sequence, err m_JSON_Errors.SerializationError) m_Wrappers.Outcome { 166 return m_Wrappers.Companion_Default___.Need((_dafny.IntOfUint32((s).Cardinality())).Cmp(m_BoundedInts.Companion_Default___.TWO__TO__THE__32()) < 0, err) 167 } 168 func (_static *CompanionStruct_Default___) String(str _dafny.Sequence) m_Wrappers.Result { 169 var _0_valueOrError0 m_Wrappers.Result = m_JSON_Spec.Companion_Default___.EscapeToUTF8(str, _dafny.Zero) 170 _ = _0_valueOrError0 171 if (_0_valueOrError0).IsFailure() { 172 return (_0_valueOrError0).PropagateFailure() 173 } else { 174 var _1_bs _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) 175 _ = _1_bs 176 var _2_valueOrError1 m_Wrappers.Outcome = Companion_Default___.CheckLength(_1_bs, m_JSON_Errors.Companion_SerializationError_.Create_StringTooLong_(str)) 177 _ = _2_valueOrError1 178 if (_2_valueOrError1).IsFailure() { 179 return (_2_valueOrError1).PropagateFailure() 180 } else { 181 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())) 182 } 183 } 184 } 185 func (_static *CompanionStruct_Default___) Sign(n _dafny.Int) m_JSON_Utils_Views_Core.View__ { 186 return m_JSON_Utils_Views_Core.Companion_View___.OfBytes((func() _dafny.Sequence { 187 if (n).Sign() == -1 { 188 return _dafny.SeqOf(uint8(_dafny.Char('-'))) 189 } 190 return _dafny.SeqOf() 191 })()) 192 } 193 func (_static *CompanionStruct_Default___) Int_k(n _dafny.Int) _dafny.Sequence { 194 return m_JSON_Serializer_ByteStrConversion.Companion_Default___.OfInt__any(n, Companion_Default___.DIGITS(), Companion_Default___.MINUS()) 195 } 196 func (_static *CompanionStruct_Default___) Int(n _dafny.Int) m_Wrappers.Result { 197 var _0_bs _dafny.Sequence = Companion_Default___.Int_k(n) 198 _ = _0_bs 199 var _1_valueOrError0 m_Wrappers.Outcome = Companion_Default___.CheckLength(_0_bs, m_JSON_Errors.Companion_SerializationError_.Create_IntTooLarge_(n)) 200 _ = _1_valueOrError0 201 if (_1_valueOrError0).IsFailure() { 202 return (_1_valueOrError0).PropagateFailure() 203 } else { 204 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Utils_Views_Core.Companion_View___.OfBytes(_0_bs)) 205 } 206 } 207 func (_static *CompanionStruct_Default___) Number(dec m_JSON_Values.Decimal) m_Wrappers.Result { 208 var _pat_let_tv0 = dec 209 _ = _pat_let_tv0 210 var _pat_let_tv1 = dec 211 _ = _pat_let_tv1 212 var _0_minus m_JSON_Utils_Views_Core.View__ = Companion_Default___.Sign((dec).Dtor_n()) 213 _ = _0_minus 214 var _1_valueOrError0 m_Wrappers.Result = Companion_Default___.Int(m__Math.Companion_Default___.Abs((dec).Dtor_n())) 215 _ = _1_valueOrError0 216 if (_1_valueOrError0).IsFailure() { 217 return (_1_valueOrError0).PropagateFailure() 218 } else { 219 var _2_num m_JSON_Utils_Views_Core.View__ = (_1_valueOrError0).Extract().(m_JSON_Utils_Views_Core.View__) 220 _ = _2_num 221 var _3_frac m_JSON_Grammar.Maybe = m_JSON_Grammar.Companion_Maybe_.Create_Empty_() 222 _ = _3_frac 223 var _4_valueOrError1 m_Wrappers.Result = (func() m_Wrappers.Result { 224 if ((dec).Dtor_e10()).Sign() == 0 { 225 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Maybe_.Create_Empty_()) 226 } 227 return func(_pat_let6_0 m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { 228 return func(_5_e m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { 229 return func(_pat_let7_0 m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { 230 return func(_6_sign m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { 231 return func(_pat_let8_0 m_Wrappers.Result) m_Wrappers.Result { 232 return func(_7_valueOrError2 m_Wrappers.Result) m_Wrappers.Result { 233 return (func() m_Wrappers.Result { 234 if (_7_valueOrError2).IsFailure() { 235 return (_7_valueOrError2).PropagateFailure() 236 } 237 return func(_pat_let9_0 m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { 238 return func(_8_num m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { 239 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))) 240 }(_pat_let9_0) 241 }((_7_valueOrError2).Extract().(m_JSON_Utils_Views_Core.View__)) 242 })() 243 }(_pat_let8_0) 244 }(Companion_Default___.Int(m__Math.Companion_Default___.Abs((_pat_let_tv1).Dtor_e10()))) 245 }(_pat_let7_0) 246 }(Companion_Default___.Sign((_pat_let_tv0).Dtor_e10())) 247 }(_pat_let6_0) 248 }(m_JSON_Utils_Views_Core.Companion_View___.OfBytes(_dafny.SeqOf(uint8(_dafny.Char('e'))))) 249 })() 250 _ = _4_valueOrError1 251 if (_4_valueOrError1).IsFailure() { 252 return (_4_valueOrError1).PropagateFailure() 253 } else { 254 var _9_exp m_JSON_Grammar.Maybe = (_4_valueOrError1).Extract().(m_JSON_Grammar.Maybe) 255 _ = _9_exp 256 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)) 257 } 258 } 259 } 260 func (_static *CompanionStruct_Default___) MkStructural(v interface{}) m_JSON_Grammar.Structural { 261 return m_JSON_Grammar.Companion_Structural_.Create_Structural_(m_JSON_Grammar.Companion_Default___.EMPTY(), v, m_JSON_Grammar.Companion_Default___.EMPTY()) 262 } 263 func (_static *CompanionStruct_Default___) KeyValue(kv _dafny.Tuple) m_Wrappers.Result { 264 var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.String((*(kv).IndexInt(0)).(_dafny.Sequence)) 265 _ = _0_valueOrError0 266 if (_0_valueOrError0).IsFailure() { 267 return (_0_valueOrError0).PropagateFailure() 268 } else { 269 var _1_k m_JSON_Grammar.Jstring = (_0_valueOrError0).Extract().(m_JSON_Grammar.Jstring) 270 _ = _1_k 271 var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.Value((*(kv).IndexInt(1)).(m_JSON_Values.JSON)) 272 _ = _2_valueOrError1 273 if (_2_valueOrError1).IsFailure() { 274 return (_2_valueOrError1).PropagateFailure() 275 } else { 276 var _3_v m_JSON_Grammar.Value = (_2_valueOrError1).Extract().(m_JSON_Grammar.Value) 277 _ = _3_v 278 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_JKeyValue_.Create_KeyValue_(_1_k, Companion_Default___.COLON(), _3_v)) 279 } 280 } 281 } 282 func (_static *CompanionStruct_Default___) MkSuffixedSequence(ds _dafny.Sequence, suffix m_JSON_Grammar.Structural, start _dafny.Int) _dafny.Sequence { 283 var _0___accumulator _dafny.Sequence = _dafny.SeqOf() 284 _ = _0___accumulator 285 goto TAIL_CALL_START 286 TAIL_CALL_START: 287 if (start).Cmp(_dafny.IntOfUint32((ds).Cardinality())) >= 0 { 288 return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) 289 } else if (start).Cmp((_dafny.IntOfUint32((ds).Cardinality())).Minus(_dafny.One)) == 0 { 290 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_()))) 291 } else { 292 _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)))) 293 var _in0 _dafny.Sequence = ds 294 _ = _in0 295 var _in1 m_JSON_Grammar.Structural = suffix 296 _ = _in1 297 var _in2 _dafny.Int = (start).Plus(_dafny.One) 298 _ = _in2 299 ds = _in0 300 suffix = _in1 301 start = _in2 302 goto TAIL_CALL_START 303 } 304 } 305 func (_static *CompanionStruct_Default___) Object(obj _dafny.Sequence) m_Wrappers.Result { 306 var _0_valueOrError0 m_Wrappers.Result = m_Seq.Companion_Default___.MapWithResult(func(coer39 func(_dafny.Tuple) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { 307 return func(arg43 interface{}) m_Wrappers.Result { 308 return coer39(arg43.(_dafny.Tuple)) 309 } 310 }((func(_1_obj _dafny.Sequence) func(_dafny.Tuple) m_Wrappers.Result { 311 return func(_2_v _dafny.Tuple) m_Wrappers.Result { 312 return Companion_Default___.KeyValue(_2_v) 313 } 314 })(obj)), obj) 315 _ = _0_valueOrError0 316 if (_0_valueOrError0).IsFailure() { 317 return (_0_valueOrError0).PropagateFailure() 318 } else { 319 var _3_items _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) 320 _ = _3_items 321 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()))) 322 } 323 } 324 func (_static *CompanionStruct_Default___) Array(arr _dafny.Sequence) m_Wrappers.Result { 325 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 { 326 return func(arg44 interface{}) m_Wrappers.Result { 327 return coer40(arg44.(m_JSON_Values.JSON)) 328 } 329 }((func(_1_arr _dafny.Sequence) func(m_JSON_Values.JSON) m_Wrappers.Result { 330 return func(_2_v m_JSON_Values.JSON) m_Wrappers.Result { 331 return Companion_Default___.Value(_2_v) 332 } 333 })(arr)), arr) 334 _ = _0_valueOrError0 335 if (_0_valueOrError0).IsFailure() { 336 return (_0_valueOrError0).PropagateFailure() 337 } else { 338 var _3_items _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) 339 _ = _3_items 340 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()))) 341 } 342 } 343 func (_static *CompanionStruct_Default___) Value(js m_JSON_Values.JSON) m_Wrappers.Result { 344 var _source0 m_JSON_Values.JSON = js 345 _ = _source0 346 { 347 if _source0.Is_Null() { 348 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()))) 349 } 350 } 351 { 352 if _source0.Is_Bool() { 353 var _0_b bool = _source0.Get_().(m_JSON_Values.JSON_Bool).B 354 _ = _0_b 355 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Bool_(Companion_Default___.Bool(_0_b))) 356 } 357 } 358 { 359 if _source0.Is_String() { 360 var _1_str _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_String).Str 361 _ = _1_str 362 var _2_valueOrError0 m_Wrappers.Result = Companion_Default___.String(_1_str) 363 _ = _2_valueOrError0 364 if (_2_valueOrError0).IsFailure() { 365 return (_2_valueOrError0).PropagateFailure() 366 } else { 367 var _3_s m_JSON_Grammar.Jstring = (_2_valueOrError0).Extract().(m_JSON_Grammar.Jstring) 368 _ = _3_s 369 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_String_(_3_s)) 370 } 371 } 372 } 373 { 374 if _source0.Is_Number() { 375 var _4_dec m_JSON_Values.Decimal = _source0.Get_().(m_JSON_Values.JSON_Number).Num 376 _ = _4_dec 377 var _5_valueOrError1 m_Wrappers.Result = Companion_Default___.Number(_4_dec) 378 _ = _5_valueOrError1 379 if (_5_valueOrError1).IsFailure() { 380 return (_5_valueOrError1).PropagateFailure() 381 } else { 382 var _6_n m_JSON_Grammar.Jnumber = (_5_valueOrError1).Extract().(m_JSON_Grammar.Jnumber) 383 _ = _6_n 384 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Number_(_6_n)) 385 } 386 } 387 } 388 { 389 if _source0.Is_Object() { 390 var _7_obj _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_Object).Obj 391 _ = _7_obj 392 var _8_valueOrError2 m_Wrappers.Result = Companion_Default___.Object(_7_obj) 393 _ = _8_valueOrError2 394 if (_8_valueOrError2).IsFailure() { 395 return (_8_valueOrError2).PropagateFailure() 396 } else { 397 var _9_o m_JSON_Grammar.Bracketed = (_8_valueOrError2).Extract().(m_JSON_Grammar.Bracketed) 398 _ = _9_o 399 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Object_(_9_o)) 400 } 401 } 402 } 403 { 404 var _10_arr _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_Array).Arr 405 _ = _10_arr 406 var _11_valueOrError3 m_Wrappers.Result = Companion_Default___.Array(_10_arr) 407 _ = _11_valueOrError3 408 if (_11_valueOrError3).IsFailure() { 409 return (_11_valueOrError3).PropagateFailure() 410 } else { 411 var _12_a m_JSON_Grammar.Bracketed = (_11_valueOrError3).Extract().(m_JSON_Grammar.Bracketed) 412 _ = _12_a 413 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Grammar.Companion_Value_.Create_Array_(_12_a)) 414 } 415 } 416 } 417 func (_static *CompanionStruct_Default___) JSON(js m_JSON_Values.JSON) m_Wrappers.Result { 418 var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.Value(js) 419 _ = _0_valueOrError0 420 if (_0_valueOrError0).IsFailure() { 421 return (_0_valueOrError0).PropagateFailure() 422 } else { 423 var _1_val m_JSON_Grammar.Value = (_0_valueOrError0).Extract().(m_JSON_Grammar.Value) 424 _ = _1_val 425 return m_Wrappers.Companion_Result_.Create_Success_(Companion_Default___.MkStructural(_1_val)) 426 } 427 } 428 func (_static *CompanionStruct_Default___) DIGITS() _dafny.Sequence { 429 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'))) 430 } 431 func (_static *CompanionStruct_Default___) MINUS() uint8 { 432 return uint8(_dafny.Char('-')) 433 } 434 func (_static *CompanionStruct_Default___) COLON() m_JSON_Grammar.Structural { 435 return Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.COLON()) 436 } 437 func (_static *CompanionStruct_Default___) COMMA() m_JSON_Grammar.Structural { 438 return Companion_Default___.MkStructural(m_JSON_Grammar.Companion_Default___.COMMA()) 439 } 440 441 // End of class Default__ 442 443 // Definition of class Bytes32 444 type Bytes32 struct { 445 } 446 447 func New_Bytes32_() *Bytes32 { 448 _this := Bytes32{} 449 450 return &_this 451 } 452 453 type CompanionStruct_Bytes32_ struct { 454 } 455 456 var Companion_Bytes32_ = CompanionStruct_Bytes32_{} 457 458 func (*Bytes32) String() string { 459 return "JSON_Serializer.Bytes32" 460 } 461 462 // End of class Bytes32 463 464 func Type_Bytes32_() _dafny.TypeDescriptor { 465 return type_Bytes32_{} 466 } 467 468 type type_Bytes32_ struct { 469 } 470 471 func (_this type_Bytes32_) Default() interface{} { 472 return _dafny.EmptySeq 473 } 474 475 func (_this type_Bytes32_) String() string { 476 return "JSON_Serializer.Bytes32" 477 } 478 func (_this *CompanionStruct_Bytes32_) Is_(__source _dafny.Sequence) bool { 479 var _0_bs _dafny.Sequence = (__source) 480 _ = _0_bs 481 return (_dafny.IntOfUint32((_0_bs).Cardinality())).Cmp(m_BoundedInts.Companion_Default___.TWO__TO__THE__32()) < 0 482 } 483 484 // Definition of class String32 485 type String32 struct { 486 } 487 488 func New_String32_() *String32 { 489 _this := String32{} 490 491 return &_this 492 } 493 494 type CompanionStruct_String32_ struct { 495 } 496 497 var Companion_String32_ = CompanionStruct_String32_{} 498 499 func (*String32) String() string { 500 return "JSON_Serializer.String32" 501 } 502 503 // End of class String32 504 505 func Type_String32_() _dafny.TypeDescriptor { 506 return type_String32_{} 507 } 508 509 type type_String32_ struct { 510 } 511 512 func (_this type_String32_) Default() interface{} { 513 return _dafny.EmptySeq.SetString() 514 } 515 516 func (_this type_String32_) String() string { 517 return "JSON_Serializer.String32" 518 } 519 func (_this *CompanionStruct_String32_) Is_(__source _dafny.Sequence) bool { 520 var _1_s _dafny.Sequence = (__source) 521 _ = _1_s 522 return (_dafny.IntOfUint32((_1_s).Cardinality())).Cmp(m_BoundedInts.Companion_Default___.TWO__TO__THE__32()) < 0 523 }