github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library@v0.2.0/JSON_Errors/JSON_Errors.go (about)

     1  // Package JSON_Errors
     2  // Dafny module JSON_Errors compiled into Go
     3  
     4  package JSON_Errors
     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_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors"
    23  	m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core"
    24  	m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings"
    25  	m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers"
    26  	m_JSON_Utils_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Seq"
    27  	m_JSON_Utils_Str "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str"
    28  	m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion"
    29  	m_JSON_Utils_Str_CharStrEscaping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrEscaping"
    30  	m_JSON_Utils_Vectors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Vectors"
    31  	m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core"
    32  	m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers"
    33  	m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm"
    34  	m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
    35  	m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals"
    36  	m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear"
    37  	m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul"
    38  	m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals"
    39  	m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear"
    40  	m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power"
    41  	m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
    42  	m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
    43  	m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
    44  	m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting"
    45  	m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary"
    46  	m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop"
    47  	m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence"
    48  	m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String"
    49  	m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt"
    50  	m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams"
    51  	m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings"
    52  	m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
    53  	m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm"
    54  	m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
    55  	m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    56  	m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
    57  	_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    58  )
    59  
    60  var _ = os.Args
    61  var _ _dafny.Dummy__
    62  var _ m__System.Dummy__
    63  var _ m_Wrappers.Dummy__
    64  var _ m_Relations.Dummy__
    65  var _ m_Seq_MergeSort.Dummy__
    66  var _ m__Math.Dummy__
    67  var _ m_Seq.Dummy__
    68  var _ m_BoundedInts.Dummy__
    69  var _ m__Unicode.Dummy__
    70  var _ m_Functions.Dummy__
    71  var _ m_Utf8EncodingForm.Dummy__
    72  var _ m_Utf16EncodingForm.Dummy__
    73  var _ m_UnicodeStrings.Dummy__
    74  var _ m_FileIO.Dummy__
    75  var _ m_GeneralInternals.Dummy__
    76  var _ m_MulInternalsNonlinear.Dummy__
    77  var _ m_MulInternals.Dummy__
    78  var _ m_Mul.Dummy__
    79  var _ m_ModInternalsNonlinear.Dummy__
    80  var _ m_DivInternalsNonlinear.Dummy__
    81  var _ m_ModInternals.Dummy__
    82  var _ m_DivInternals.Dummy__
    83  var _ m_DivMod.Dummy__
    84  var _ m_Power.Dummy__
    85  var _ m_Logarithm.Dummy__
    86  var _ m_StandardLibraryInterop.Dummy__
    87  var _ m_StandardLibrary_UInt.Dummy__
    88  var _ m_StandardLibrary_Sequence.Dummy__
    89  var _ m_StandardLibrary_String.Dummy__
    90  var _ m_StandardLibrary.Dummy__
    91  var _ m_Streams.Dummy__
    92  var _ m_Sorting.Dummy__
    93  var _ m_HexStrings.Dummy__
    94  var _ m_GetOpt.Dummy__
    95  var _ m_FloatCompare.Dummy__
    96  var _ m_Base64.Dummy__
    97  var _ m_Base64Lemmas.Dummy__
    98  var _ m_Actions.Dummy__
    99  var _ m_JSON_Utils_Views_Core.Dummy__
   100  var _ m_JSON_Utils_Views_Writers.Dummy__
   101  var _ m_JSON_Utils_Lexers_Core.Dummy__
   102  var _ m_JSON_Utils_Lexers_Strings.Dummy__
   103  var _ m_JSON_Utils_Cursors.Dummy__
   104  var _ m_JSON_Utils_Parsers.Dummy__
   105  var _ m_JSON_Utils_Str_CharStrConversion.Dummy__
   106  var _ m_JSON_Utils_Str_CharStrEscaping.Dummy__
   107  var _ m_JSON_Utils_Str.Dummy__
   108  var _ m_JSON_Utils_Seq.Dummy__
   109  var _ m_JSON_Utils_Vectors.Dummy__
   110  
   111  type Dummy__ struct{}
   112  
   113  // Definition of datatype DeserializationError
   114  type DeserializationError struct {
   115  	Data_DeserializationError_
   116  }
   117  
   118  func (_this DeserializationError) Get_() Data_DeserializationError_ {
   119  	return _this.Data_DeserializationError_
   120  }
   121  
   122  type Data_DeserializationError_ interface {
   123  	isDeserializationError()
   124  }
   125  
   126  type CompanionStruct_DeserializationError_ struct {
   127  }
   128  
   129  var Companion_DeserializationError_ = CompanionStruct_DeserializationError_{}
   130  
   131  type DeserializationError_UnterminatedSequence struct {
   132  }
   133  
   134  func (DeserializationError_UnterminatedSequence) isDeserializationError() {}
   135  
   136  func (CompanionStruct_DeserializationError_) Create_UnterminatedSequence_() DeserializationError {
   137  	return DeserializationError{DeserializationError_UnterminatedSequence{}}
   138  }
   139  
   140  func (_this DeserializationError) Is_UnterminatedSequence() bool {
   141  	_, ok := _this.Get_().(DeserializationError_UnterminatedSequence)
   142  	return ok
   143  }
   144  
   145  type DeserializationError_UnsupportedEscape struct {
   146  	Str _dafny.Sequence
   147  }
   148  
   149  func (DeserializationError_UnsupportedEscape) isDeserializationError() {}
   150  
   151  func (CompanionStruct_DeserializationError_) Create_UnsupportedEscape_(Str _dafny.Sequence) DeserializationError {
   152  	return DeserializationError{DeserializationError_UnsupportedEscape{Str}}
   153  }
   154  
   155  func (_this DeserializationError) Is_UnsupportedEscape() bool {
   156  	_, ok := _this.Get_().(DeserializationError_UnsupportedEscape)
   157  	return ok
   158  }
   159  
   160  type DeserializationError_EscapeAtEOS struct {
   161  }
   162  
   163  func (DeserializationError_EscapeAtEOS) isDeserializationError() {}
   164  
   165  func (CompanionStruct_DeserializationError_) Create_EscapeAtEOS_() DeserializationError {
   166  	return DeserializationError{DeserializationError_EscapeAtEOS{}}
   167  }
   168  
   169  func (_this DeserializationError) Is_EscapeAtEOS() bool {
   170  	_, ok := _this.Get_().(DeserializationError_EscapeAtEOS)
   171  	return ok
   172  }
   173  
   174  type DeserializationError_EmptyNumber struct {
   175  }
   176  
   177  func (DeserializationError_EmptyNumber) isDeserializationError() {}
   178  
   179  func (CompanionStruct_DeserializationError_) Create_EmptyNumber_() DeserializationError {
   180  	return DeserializationError{DeserializationError_EmptyNumber{}}
   181  }
   182  
   183  func (_this DeserializationError) Is_EmptyNumber() bool {
   184  	_, ok := _this.Get_().(DeserializationError_EmptyNumber)
   185  	return ok
   186  }
   187  
   188  type DeserializationError_ExpectingEOF struct {
   189  }
   190  
   191  func (DeserializationError_ExpectingEOF) isDeserializationError() {}
   192  
   193  func (CompanionStruct_DeserializationError_) Create_ExpectingEOF_() DeserializationError {
   194  	return DeserializationError{DeserializationError_ExpectingEOF{}}
   195  }
   196  
   197  func (_this DeserializationError) Is_ExpectingEOF() bool {
   198  	_, ok := _this.Get_().(DeserializationError_ExpectingEOF)
   199  	return ok
   200  }
   201  
   202  type DeserializationError_IntOverflow struct {
   203  }
   204  
   205  func (DeserializationError_IntOverflow) isDeserializationError() {}
   206  
   207  func (CompanionStruct_DeserializationError_) Create_IntOverflow_() DeserializationError {
   208  	return DeserializationError{DeserializationError_IntOverflow{}}
   209  }
   210  
   211  func (_this DeserializationError) Is_IntOverflow() bool {
   212  	_, ok := _this.Get_().(DeserializationError_IntOverflow)
   213  	return ok
   214  }
   215  
   216  type DeserializationError_ReachedEOF struct {
   217  }
   218  
   219  func (DeserializationError_ReachedEOF) isDeserializationError() {}
   220  
   221  func (CompanionStruct_DeserializationError_) Create_ReachedEOF_() DeserializationError {
   222  	return DeserializationError{DeserializationError_ReachedEOF{}}
   223  }
   224  
   225  func (_this DeserializationError) Is_ReachedEOF() bool {
   226  	_, ok := _this.Get_().(DeserializationError_ReachedEOF)
   227  	return ok
   228  }
   229  
   230  type DeserializationError_ExpectingByte struct {
   231  	Expected uint8
   232  	B        int16
   233  }
   234  
   235  func (DeserializationError_ExpectingByte) isDeserializationError() {}
   236  
   237  func (CompanionStruct_DeserializationError_) Create_ExpectingByte_(Expected uint8, B int16) DeserializationError {
   238  	return DeserializationError{DeserializationError_ExpectingByte{Expected, B}}
   239  }
   240  
   241  func (_this DeserializationError) Is_ExpectingByte() bool {
   242  	_, ok := _this.Get_().(DeserializationError_ExpectingByte)
   243  	return ok
   244  }
   245  
   246  type DeserializationError_ExpectingAnyByte struct {
   247  	Expected__sq _dafny.Sequence
   248  	B            int16
   249  }
   250  
   251  func (DeserializationError_ExpectingAnyByte) isDeserializationError() {}
   252  
   253  func (CompanionStruct_DeserializationError_) Create_ExpectingAnyByte_(Expected__sq _dafny.Sequence, B int16) DeserializationError {
   254  	return DeserializationError{DeserializationError_ExpectingAnyByte{Expected__sq, B}}
   255  }
   256  
   257  func (_this DeserializationError) Is_ExpectingAnyByte() bool {
   258  	_, ok := _this.Get_().(DeserializationError_ExpectingAnyByte)
   259  	return ok
   260  }
   261  
   262  type DeserializationError_InvalidUnicode struct {
   263  }
   264  
   265  func (DeserializationError_InvalidUnicode) isDeserializationError() {}
   266  
   267  func (CompanionStruct_DeserializationError_) Create_InvalidUnicode_() DeserializationError {
   268  	return DeserializationError{DeserializationError_InvalidUnicode{}}
   269  }
   270  
   271  func (_this DeserializationError) Is_InvalidUnicode() bool {
   272  	_, ok := _this.Get_().(DeserializationError_InvalidUnicode)
   273  	return ok
   274  }
   275  
   276  func (CompanionStruct_DeserializationError_) Default() DeserializationError {
   277  	return Companion_DeserializationError_.Create_UnterminatedSequence_()
   278  }
   279  
   280  func (_this DeserializationError) Dtor_str() _dafny.Sequence {
   281  	return _this.Get_().(DeserializationError_UnsupportedEscape).Str
   282  }
   283  
   284  func (_this DeserializationError) Dtor_expected() uint8 {
   285  	return _this.Get_().(DeserializationError_ExpectingByte).Expected
   286  }
   287  
   288  func (_this DeserializationError) Dtor_b() int16 {
   289  	switch data := _this.Get_().(type) {
   290  	case DeserializationError_ExpectingByte:
   291  		return data.B
   292  	default:
   293  		return data.(DeserializationError_ExpectingAnyByte).B
   294  	}
   295  }
   296  
   297  func (_this DeserializationError) Dtor_expected__sq() _dafny.Sequence {
   298  	return _this.Get_().(DeserializationError_ExpectingAnyByte).Expected__sq
   299  }
   300  
   301  func (_this DeserializationError) String() string {
   302  	switch data := _this.Get_().(type) {
   303  	case nil:
   304  		return "null"
   305  	case DeserializationError_UnterminatedSequence:
   306  		{
   307  			return "Errors.DeserializationError.UnterminatedSequence"
   308  		}
   309  	case DeserializationError_UnsupportedEscape:
   310  		{
   311  			return "Errors.DeserializationError.UnsupportedEscape" + "(" + _dafny.String(data.Str) + ")"
   312  		}
   313  	case DeserializationError_EscapeAtEOS:
   314  		{
   315  			return "Errors.DeserializationError.EscapeAtEOS"
   316  		}
   317  	case DeserializationError_EmptyNumber:
   318  		{
   319  			return "Errors.DeserializationError.EmptyNumber"
   320  		}
   321  	case DeserializationError_ExpectingEOF:
   322  		{
   323  			return "Errors.DeserializationError.ExpectingEOF"
   324  		}
   325  	case DeserializationError_IntOverflow:
   326  		{
   327  			return "Errors.DeserializationError.IntOverflow"
   328  		}
   329  	case DeserializationError_ReachedEOF:
   330  		{
   331  			return "Errors.DeserializationError.ReachedEOF"
   332  		}
   333  	case DeserializationError_ExpectingByte:
   334  		{
   335  			return "Errors.DeserializationError.ExpectingByte" + "(" + _dafny.String(data.Expected) + ", " + _dafny.String(data.B) + ")"
   336  		}
   337  	case DeserializationError_ExpectingAnyByte:
   338  		{
   339  			return "Errors.DeserializationError.ExpectingAnyByte" + "(" + _dafny.String(data.Expected__sq) + ", " + _dafny.String(data.B) + ")"
   340  		}
   341  	case DeserializationError_InvalidUnicode:
   342  		{
   343  			return "Errors.DeserializationError.InvalidUnicode"
   344  		}
   345  	default:
   346  		{
   347  			return "<unexpected>"
   348  		}
   349  	}
   350  }
   351  
   352  func (_this DeserializationError) Equals(other DeserializationError) bool {
   353  	switch data1 := _this.Get_().(type) {
   354  	case DeserializationError_UnterminatedSequence:
   355  		{
   356  			_, ok := other.Get_().(DeserializationError_UnterminatedSequence)
   357  			return ok
   358  		}
   359  	case DeserializationError_UnsupportedEscape:
   360  		{
   361  			data2, ok := other.Get_().(DeserializationError_UnsupportedEscape)
   362  			return ok && data1.Str.Equals(data2.Str)
   363  		}
   364  	case DeserializationError_EscapeAtEOS:
   365  		{
   366  			_, ok := other.Get_().(DeserializationError_EscapeAtEOS)
   367  			return ok
   368  		}
   369  	case DeserializationError_EmptyNumber:
   370  		{
   371  			_, ok := other.Get_().(DeserializationError_EmptyNumber)
   372  			return ok
   373  		}
   374  	case DeserializationError_ExpectingEOF:
   375  		{
   376  			_, ok := other.Get_().(DeserializationError_ExpectingEOF)
   377  			return ok
   378  		}
   379  	case DeserializationError_IntOverflow:
   380  		{
   381  			_, ok := other.Get_().(DeserializationError_IntOverflow)
   382  			return ok
   383  		}
   384  	case DeserializationError_ReachedEOF:
   385  		{
   386  			_, ok := other.Get_().(DeserializationError_ReachedEOF)
   387  			return ok
   388  		}
   389  	case DeserializationError_ExpectingByte:
   390  		{
   391  			data2, ok := other.Get_().(DeserializationError_ExpectingByte)
   392  			return ok && data1.Expected == data2.Expected && data1.B == data2.B
   393  		}
   394  	case DeserializationError_ExpectingAnyByte:
   395  		{
   396  			data2, ok := other.Get_().(DeserializationError_ExpectingAnyByte)
   397  			return ok && data1.Expected__sq.Equals(data2.Expected__sq) && data1.B == data2.B
   398  		}
   399  	case DeserializationError_InvalidUnicode:
   400  		{
   401  			_, ok := other.Get_().(DeserializationError_InvalidUnicode)
   402  			return ok
   403  		}
   404  	default:
   405  		{
   406  			return false // unexpected
   407  		}
   408  	}
   409  }
   410  
   411  func (_this DeserializationError) EqualsGeneric(other interface{}) bool {
   412  	typed, ok := other.(DeserializationError)
   413  	return ok && _this.Equals(typed)
   414  }
   415  
   416  func Type_DeserializationError_() _dafny.TypeDescriptor {
   417  	return type_DeserializationError_{}
   418  }
   419  
   420  type type_DeserializationError_ struct {
   421  }
   422  
   423  func (_this type_DeserializationError_) Default() interface{} {
   424  	return Companion_DeserializationError_.Default()
   425  }
   426  
   427  func (_this type_DeserializationError_) String() string {
   428  	return "JSON_Errors.DeserializationError"
   429  }
   430  func (_this DeserializationError) ParentTraits_() []*_dafny.TraitID {
   431  	return [](*_dafny.TraitID){}
   432  }
   433  
   434  var _ _dafny.TraitOffspring = DeserializationError{}
   435  
   436  func (_this DeserializationError) ToString() _dafny.Sequence {
   437  	{
   438  		var _source0 DeserializationError = _this
   439  		_ = _source0
   440  		{
   441  			if _source0.Is_UnterminatedSequence() {
   442  				return _dafny.SeqOfString("Unterminated sequence")
   443  			}
   444  		}
   445  		{
   446  			if _source0.Is_UnsupportedEscape() {
   447  				var _0_str _dafny.Sequence = _source0.Get_().(DeserializationError_UnsupportedEscape).Str
   448  				_ = _0_str
   449  				return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Unsupported escape sequence: "), _0_str)
   450  			}
   451  		}
   452  		{
   453  			if _source0.Is_EscapeAtEOS() {
   454  				return _dafny.SeqOfString("Escape character at end of string")
   455  			}
   456  		}
   457  		{
   458  			if _source0.Is_EmptyNumber() {
   459  				return _dafny.SeqOfString("Number must contain at least one digit")
   460  			}
   461  		}
   462  		{
   463  			if _source0.Is_ExpectingEOF() {
   464  				return _dafny.SeqOfString("Expecting EOF")
   465  			}
   466  		}
   467  		{
   468  			if _source0.Is_IntOverflow() {
   469  				return _dafny.SeqOfString("Input length does not fit in a 32-bit counter")
   470  			}
   471  		}
   472  		{
   473  			if _source0.Is_ReachedEOF() {
   474  				return _dafny.SeqOfString("Reached EOF")
   475  			}
   476  		}
   477  		{
   478  			if _source0.Is_ExpectingByte() {
   479  				var _1_b0 uint8 = _source0.Get_().(DeserializationError_ExpectingByte).Expected
   480  				_ = _1_b0
   481  				var _2_b int16 = _source0.Get_().(DeserializationError_ExpectingByte).B
   482  				_ = _2_b
   483  				var _3_c _dafny.Sequence = (func() _dafny.Sequence {
   484  					if (_2_b) > (int16(0)) {
   485  						return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("'"), _dafny.SeqOfChars(_dafny.Char((_2_b)))), _dafny.SeqOfString("'"))
   486  					}
   487  					return _dafny.SeqOfString("EOF")
   488  				})()
   489  				_ = _3_c
   490  				return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Expecting '"), _dafny.SeqOfChars(_dafny.Char((_1_b0)))), _dafny.SeqOfString("', read ")), _3_c)
   491  			}
   492  		}
   493  		{
   494  			if _source0.Is_ExpectingAnyByte() {
   495  				var _4_bs0 _dafny.Sequence = _source0.Get_().(DeserializationError_ExpectingAnyByte).Expected__sq
   496  				_ = _4_bs0
   497  				var _5_b int16 = _source0.Get_().(DeserializationError_ExpectingAnyByte).B
   498  				_ = _5_b
   499  				var _6_c _dafny.Sequence = (func() _dafny.Sequence {
   500  					if (_5_b) > (int16(0)) {
   501  						return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("'"), _dafny.SeqOfChars(_dafny.Char((_5_b)))), _dafny.SeqOfString("'"))
   502  					}
   503  					return _dafny.SeqOfString("EOF")
   504  				})()
   505  				_ = _6_c
   506  				var _7_c0s _dafny.Sequence = _dafny.SeqCreate((_dafny.IntOfUint32((_4_bs0).Cardinality())).Uint32(), func(coer35 func(_dafny.Int) _dafny.Char) func(_dafny.Int) interface{} {
   507  					return func(arg39 _dafny.Int) interface{} {
   508  						return coer35(arg39)
   509  					}
   510  				}((func(_8_bs0 _dafny.Sequence) func(_dafny.Int) _dafny.Char {
   511  					return func(_9_idx _dafny.Int) _dafny.Char {
   512  						return _dafny.Char(((_8_bs0).Select((_9_idx).Uint32()).(uint8)))
   513  					}
   514  				})(_4_bs0))).SetString()
   515  				_ = _7_c0s
   516  				return _dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Expecting one of '"), _7_c0s), _dafny.SeqOfString("', read ")), _6_c)
   517  			}
   518  		}
   519  		{
   520  			return _dafny.SeqOfString("Invalid Unicode sequence")
   521  		}
   522  	}
   523  }
   524  
   525  // End of datatype DeserializationError
   526  
   527  // Definition of datatype SerializationError
   528  type SerializationError struct {
   529  	Data_SerializationError_
   530  }
   531  
   532  func (_this SerializationError) Get_() Data_SerializationError_ {
   533  	return _this.Data_SerializationError_
   534  }
   535  
   536  type Data_SerializationError_ interface {
   537  	isSerializationError()
   538  }
   539  
   540  type CompanionStruct_SerializationError_ struct {
   541  }
   542  
   543  var Companion_SerializationError_ = CompanionStruct_SerializationError_{}
   544  
   545  type SerializationError_OutOfMemory struct {
   546  }
   547  
   548  func (SerializationError_OutOfMemory) isSerializationError() {}
   549  
   550  func (CompanionStruct_SerializationError_) Create_OutOfMemory_() SerializationError {
   551  	return SerializationError{SerializationError_OutOfMemory{}}
   552  }
   553  
   554  func (_this SerializationError) Is_OutOfMemory() bool {
   555  	_, ok := _this.Get_().(SerializationError_OutOfMemory)
   556  	return ok
   557  }
   558  
   559  type SerializationError_IntTooLarge struct {
   560  	I _dafny.Int
   561  }
   562  
   563  func (SerializationError_IntTooLarge) isSerializationError() {}
   564  
   565  func (CompanionStruct_SerializationError_) Create_IntTooLarge_(I _dafny.Int) SerializationError {
   566  	return SerializationError{SerializationError_IntTooLarge{I}}
   567  }
   568  
   569  func (_this SerializationError) Is_IntTooLarge() bool {
   570  	_, ok := _this.Get_().(SerializationError_IntTooLarge)
   571  	return ok
   572  }
   573  
   574  type SerializationError_StringTooLong struct {
   575  	S _dafny.Sequence
   576  }
   577  
   578  func (SerializationError_StringTooLong) isSerializationError() {}
   579  
   580  func (CompanionStruct_SerializationError_) Create_StringTooLong_(S _dafny.Sequence) SerializationError {
   581  	return SerializationError{SerializationError_StringTooLong{S}}
   582  }
   583  
   584  func (_this SerializationError) Is_StringTooLong() bool {
   585  	_, ok := _this.Get_().(SerializationError_StringTooLong)
   586  	return ok
   587  }
   588  
   589  type SerializationError_InvalidUnicode struct {
   590  }
   591  
   592  func (SerializationError_InvalidUnicode) isSerializationError() {}
   593  
   594  func (CompanionStruct_SerializationError_) Create_InvalidUnicode_() SerializationError {
   595  	return SerializationError{SerializationError_InvalidUnicode{}}
   596  }
   597  
   598  func (_this SerializationError) Is_InvalidUnicode() bool {
   599  	_, ok := _this.Get_().(SerializationError_InvalidUnicode)
   600  	return ok
   601  }
   602  
   603  func (CompanionStruct_SerializationError_) Default() SerializationError {
   604  	return Companion_SerializationError_.Create_OutOfMemory_()
   605  }
   606  
   607  func (_this SerializationError) Dtor_i() _dafny.Int {
   608  	return _this.Get_().(SerializationError_IntTooLarge).I
   609  }
   610  
   611  func (_this SerializationError) Dtor_s() _dafny.Sequence {
   612  	return _this.Get_().(SerializationError_StringTooLong).S
   613  }
   614  
   615  func (_this SerializationError) String() string {
   616  	switch data := _this.Get_().(type) {
   617  	case nil:
   618  		return "null"
   619  	case SerializationError_OutOfMemory:
   620  		{
   621  			return "Errors.SerializationError.OutOfMemory"
   622  		}
   623  	case SerializationError_IntTooLarge:
   624  		{
   625  			return "Errors.SerializationError.IntTooLarge" + "(" + _dafny.String(data.I) + ")"
   626  		}
   627  	case SerializationError_StringTooLong:
   628  		{
   629  			return "Errors.SerializationError.StringTooLong" + "(" + _dafny.String(data.S) + ")"
   630  		}
   631  	case SerializationError_InvalidUnicode:
   632  		{
   633  			return "Errors.SerializationError.InvalidUnicode"
   634  		}
   635  	default:
   636  		{
   637  			return "<unexpected>"
   638  		}
   639  	}
   640  }
   641  
   642  func (_this SerializationError) Equals(other SerializationError) bool {
   643  	switch data1 := _this.Get_().(type) {
   644  	case SerializationError_OutOfMemory:
   645  		{
   646  			_, ok := other.Get_().(SerializationError_OutOfMemory)
   647  			return ok
   648  		}
   649  	case SerializationError_IntTooLarge:
   650  		{
   651  			data2, ok := other.Get_().(SerializationError_IntTooLarge)
   652  			return ok && data1.I.Cmp(data2.I) == 0
   653  		}
   654  	case SerializationError_StringTooLong:
   655  		{
   656  			data2, ok := other.Get_().(SerializationError_StringTooLong)
   657  			return ok && data1.S.Equals(data2.S)
   658  		}
   659  	case SerializationError_InvalidUnicode:
   660  		{
   661  			_, ok := other.Get_().(SerializationError_InvalidUnicode)
   662  			return ok
   663  		}
   664  	default:
   665  		{
   666  			return false // unexpected
   667  		}
   668  	}
   669  }
   670  
   671  func (_this SerializationError) EqualsGeneric(other interface{}) bool {
   672  	typed, ok := other.(SerializationError)
   673  	return ok && _this.Equals(typed)
   674  }
   675  
   676  func Type_SerializationError_() _dafny.TypeDescriptor {
   677  	return type_SerializationError_{}
   678  }
   679  
   680  type type_SerializationError_ struct {
   681  }
   682  
   683  func (_this type_SerializationError_) Default() interface{} {
   684  	return Companion_SerializationError_.Default()
   685  }
   686  
   687  func (_this type_SerializationError_) String() string {
   688  	return "JSON_Errors.SerializationError"
   689  }
   690  func (_this SerializationError) ParentTraits_() []*_dafny.TraitID {
   691  	return [](*_dafny.TraitID){}
   692  }
   693  
   694  var _ _dafny.TraitOffspring = SerializationError{}
   695  
   696  func (_this SerializationError) ToString() _dafny.Sequence {
   697  	{
   698  		var _source0 SerializationError = _this
   699  		_ = _source0
   700  		{
   701  			if _source0.Is_OutOfMemory() {
   702  				return _dafny.SeqOfString("Out of memory")
   703  			}
   704  		}
   705  		{
   706  			if _source0.Is_IntTooLarge() {
   707  				var _0_i _dafny.Int = _source0.Get_().(SerializationError_IntTooLarge).I
   708  				_ = _0_i
   709  				return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("Integer too large: "), m_JSON_Utils_Str.Companion_Default___.OfInt(_0_i, _dafny.IntOfInt64(10)))
   710  			}
   711  		}
   712  		{
   713  			if _source0.Is_StringTooLong() {
   714  				var _1_s _dafny.Sequence = _source0.Get_().(SerializationError_StringTooLong).S
   715  				_ = _1_s
   716  				return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfString("String too long: "), _1_s)
   717  			}
   718  		}
   719  		{
   720  			return _dafny.SeqOfString("Invalid Unicode sequence")
   721  		}
   722  	}
   723  }
   724  
   725  // End of datatype SerializationError