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  }