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

     1  // Package Utf16EncodingForm
     2  // Dafny module Utf16EncodingForm compiled into Go
     3  
     4  package Utf16EncodingForm
     5  
     6  import (
     7  	os "os"
     8  
     9  	m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts"
    10  	m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions"
    11  	m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
    12  	m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
    13  	m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
    14  	m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
    15  	m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
    16  	m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
    17  	m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    18  	m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
    19  	_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    20  )
    21  
    22  var _ = os.Args
    23  var _ _dafny.Dummy__
    24  var _ m__System.Dummy__
    25  var _ m_Wrappers.Dummy__
    26  var _ m_Relations.Dummy__
    27  var _ m_Seq_MergeSort.Dummy__
    28  var _ m__Math.Dummy__
    29  var _ m_Seq.Dummy__
    30  var _ m_BoundedInts.Dummy__
    31  var _ m__Unicode.Dummy__
    32  var _ m_Functions.Dummy__
    33  var _ m_Utf8EncodingForm.Dummy__
    34  
    35  type Dummy__ struct{}
    36  
    37  // Definition of class Default__
    38  type Default__ struct {
    39  	dummy byte
    40  }
    41  
    42  func New_Default___() *Default__ {
    43  	_this := Default__{}
    44  
    45  	return &_this
    46  }
    47  
    48  type CompanionStruct_Default___ struct {
    49  }
    50  
    51  var Companion_Default___ = CompanionStruct_Default___{}
    52  
    53  func (_this *Default__) Equals(other *Default__) bool {
    54  	return _this == other
    55  }
    56  
    57  func (_this *Default__) EqualsGeneric(x interface{}) bool {
    58  	other, ok := x.(*Default__)
    59  	return ok && _this.Equals(other)
    60  }
    61  
    62  func (*Default__) String() string {
    63  	return "Utf16EncodingForm.Default__"
    64  }
    65  func (_this *Default__) ParentTraits_() []*_dafny.TraitID {
    66  	return [](*_dafny.TraitID){}
    67  }
    68  
    69  var _ _dafny.TraitOffspring = &Default__{}
    70  
    71  func (_static *CompanionStruct_Default___) IsMinimalWellFormedCodeUnitSubsequence(s _dafny.Sequence) bool {
    72  	if (_dafny.IntOfUint32((s).Cardinality())).Cmp(_dafny.One) == 0 {
    73  		return Companion_Default___.IsWellFormedSingleCodeUnitSequence(s)
    74  	} else if (_dafny.IntOfUint32((s).Cardinality())).Cmp(_dafny.IntOfInt64(2)) == 0 {
    75  		var _0_b bool = Companion_Default___.IsWellFormedDoubleCodeUnitSequence(s)
    76  		_ = _0_b
    77  		return _0_b
    78  	} else {
    79  		return false
    80  	}
    81  }
    82  func (_static *CompanionStruct_Default___) IsWellFormedSingleCodeUnitSequence(s _dafny.Sequence) bool {
    83  	var _0_firstWord uint16 = (s).Select(0).(uint16)
    84  	_ = _0_firstWord
    85  	return (((uint16(0)) <= (_0_firstWord)) && ((_0_firstWord) <= (uint16(55295)))) || (((uint16(57344)) <= (_0_firstWord)) && ((_0_firstWord) <= (uint16(65535))))
    86  }
    87  func (_static *CompanionStruct_Default___) IsWellFormedDoubleCodeUnitSequence(s _dafny.Sequence) bool {
    88  	var _0_firstWord uint16 = (s).Select(0).(uint16)
    89  	_ = _0_firstWord
    90  	var _1_secondWord uint16 = (s).Select(1).(uint16)
    91  	_ = _1_secondWord
    92  	return (((uint16(55296)) <= (_0_firstWord)) && ((_0_firstWord) <= (uint16(56319)))) && (((uint16(56320)) <= (_1_secondWord)) && ((_1_secondWord) <= (uint16(57343))))
    93  }
    94  func (_static *CompanionStruct_Default___) SplitPrefixMinimalWellFormedCodeUnitSubsequence(s _dafny.Sequence) m_Wrappers.Option {
    95  	if ((_dafny.IntOfUint32((s).Cardinality())).Cmp(_dafny.One) >= 0) && (Companion_Default___.IsWellFormedSingleCodeUnitSequence((s).Take(1))) {
    96  		return m_Wrappers.Companion_Option_.Create_Some_((s).Take(1))
    97  	} else if ((_dafny.IntOfUint32((s).Cardinality())).Cmp(_dafny.IntOfInt64(2)) >= 0) && (Companion_Default___.IsWellFormedDoubleCodeUnitSequence((s).Take(2))) {
    98  		return m_Wrappers.Companion_Option_.Create_Some_((s).Take(2))
    99  	} else {
   100  		return m_Wrappers.Companion_Option_.Create_None_()
   101  	}
   102  }
   103  func (_static *CompanionStruct_Default___) EncodeScalarValue(v uint32) _dafny.Sequence {
   104  	if (((uint32(0)) <= (v)) && ((v) <= (uint32(55295)))) || (((uint32(57344)) <= (v)) && ((v) <= (uint32(65535)))) {
   105  		return Companion_Default___.EncodeScalarValueSingleWord(v)
   106  	} else {
   107  		return Companion_Default___.EncodeScalarValueDoubleWord(v)
   108  	}
   109  }
   110  func (_static *CompanionStruct_Default___) EncodeScalarValueSingleWord(v uint32) _dafny.Sequence {
   111  	var _0_firstWord uint16 = uint16(v)
   112  	_ = _0_firstWord
   113  	return _dafny.SeqOf(_0_firstWord)
   114  }
   115  func (_static *CompanionStruct_Default___) EncodeScalarValueDoubleWord(v uint32) _dafny.Sequence {
   116  	var _0_x2 uint16 = uint16((v) & (uint32(1023)))
   117  	_ = _0_x2
   118  	var _1_x1 uint8 = uint8(((v) & (uint32(64512))) >> (uint8(10)))
   119  	_ = _1_x1
   120  	var _2_u uint8 = uint8(((v) & (uint32(2031616))) >> (uint8(16)))
   121  	_ = _2_u
   122  	var _3_w uint8 = uint8((((_2_u) - (func() uint8 { return (uint8(1)) })()) & 0x1F))
   123  	_ = _3_w
   124  	var _4_firstWord uint16 = ((uint16(55296)) | ((uint16(_3_w)) << (uint8(6)))) | (uint16(_1_x1))
   125  	_ = _4_firstWord
   126  	var _5_secondWord uint16 = (uint16(56320)) | (uint16(_0_x2))
   127  	_ = _5_secondWord
   128  	return _dafny.SeqOf(_4_firstWord, _5_secondWord)
   129  }
   130  func (_static *CompanionStruct_Default___) DecodeMinimalWellFormedCodeUnitSubsequence(m _dafny.Sequence) uint32 {
   131  	if (_dafny.IntOfUint32((m).Cardinality())).Cmp(_dafny.One) == 0 {
   132  		return Companion_Default___.DecodeMinimalWellFormedCodeUnitSubsequenceSingleWord(m)
   133  	} else {
   134  		return Companion_Default___.DecodeMinimalWellFormedCodeUnitSubsequenceDoubleWord(m)
   135  	}
   136  }
   137  func (_static *CompanionStruct_Default___) DecodeMinimalWellFormedCodeUnitSubsequenceSingleWord(m _dafny.Sequence) uint32 {
   138  	var _0_firstWord uint16 = (m).Select(0).(uint16)
   139  	_ = _0_firstWord
   140  	var _1_x uint16 = _0_firstWord
   141  	_ = _1_x
   142  	return uint32(_1_x)
   143  }
   144  func (_static *CompanionStruct_Default___) DecodeMinimalWellFormedCodeUnitSubsequenceDoubleWord(m _dafny.Sequence) uint32 {
   145  	var _0_firstWord uint16 = (m).Select(0).(uint16)
   146  	_ = _0_firstWord
   147  	var _1_secondWord uint16 = (m).Select(1).(uint16)
   148  	_ = _1_secondWord
   149  	var _2_x2 uint32 = uint32((_1_secondWord) & (uint16(1023)))
   150  	_ = _2_x2
   151  	var _3_x1 uint32 = uint32((_0_firstWord) & (uint16(63)))
   152  	_ = _3_x1
   153  	var _4_w uint32 = uint32(((_0_firstWord) & (uint16(960))) >> (uint8(6)))
   154  	_ = _4_w
   155  	var _5_u uint32 = (((_4_w) + (uint32(1))) & 0xFFFFFF)
   156  	_ = _5_u
   157  	var _6_v uint32 = ((((_5_u) << (uint8(16))) & 0xFFFFFF) | (((_3_x1) << (uint8(10))) & 0xFFFFFF)) | (_2_x2)
   158  	_ = _6_v
   159  	return _6_v
   160  }
   161  func (_static *CompanionStruct_Default___) PartitionCodeUnitSequenceChecked(s _dafny.Sequence) m_Wrappers.Option {
   162  	var maybeParts m_Wrappers.Option = m_Wrappers.Companion_Option_.Default()
   163  	_ = maybeParts
   164  	if _dafny.Companion_Sequence_.Equal(s, _dafny.SeqOf()) {
   165  		maybeParts = m_Wrappers.Companion_Option_.Create_Some_(_dafny.SeqOf())
   166  		return maybeParts
   167  	}
   168  	var _0_result _dafny.Sequence
   169  	_ = _0_result
   170  	_0_result = _dafny.SeqOf()
   171  	var _1_rest _dafny.Sequence
   172  	_ = _1_rest
   173  	_1_rest = s
   174  	for (_dafny.IntOfUint32((_1_rest).Cardinality())).Sign() == 1 {
   175  		var _2_valueOrError0 m_Wrappers.Option = m_Wrappers.Companion_Option_.Default()
   176  		_ = _2_valueOrError0
   177  		_2_valueOrError0 = Companion_Default___.SplitPrefixMinimalWellFormedCodeUnitSubsequence(_1_rest)
   178  		if (_2_valueOrError0).IsFailure() {
   179  			maybeParts = (_2_valueOrError0).PropagateFailure()
   180  			return maybeParts
   181  		}
   182  		var _3_prefix _dafny.Sequence
   183  		_ = _3_prefix
   184  		_3_prefix = (_2_valueOrError0).Extract().(_dafny.Sequence)
   185  		_0_result = _dafny.Companion_Sequence_.Concatenate(_0_result, _dafny.SeqOf(_3_prefix))
   186  		_1_rest = (_1_rest).Drop((_dafny.IntOfUint32((_3_prefix).Cardinality())).Uint32())
   187  	}
   188  	maybeParts = m_Wrappers.Companion_Option_.Create_Some_(_0_result)
   189  	return maybeParts
   190  	return maybeParts
   191  }
   192  func (_static *CompanionStruct_Default___) PartitionCodeUnitSequence(s _dafny.Sequence) _dafny.Sequence {
   193  	return (Companion_Default___.PartitionCodeUnitSequenceChecked(s)).Extract().(_dafny.Sequence)
   194  }
   195  func (_static *CompanionStruct_Default___) IsWellFormedCodeUnitSequence(s _dafny.Sequence) bool {
   196  	return (Companion_Default___.PartitionCodeUnitSequenceChecked(s)).Is_Some()
   197  }
   198  func (_static *CompanionStruct_Default___) EncodeScalarSequence(vs _dafny.Sequence) _dafny.Sequence {
   199  	var s _dafny.Sequence = Companion_WellFormedCodeUnitSeq_.Witness()
   200  	_ = s
   201  	s = _dafny.SeqOf()
   202  	var _lo0 _dafny.Int = _dafny.Zero
   203  	_ = _lo0
   204  	for _0_i := _dafny.IntOfUint32((vs).Cardinality()); _lo0.Cmp(_0_i) < 0; {
   205  		_0_i = _0_i.Minus(_dafny.One)
   206  		var _1_next _dafny.Sequence
   207  		_ = _1_next
   208  		_1_next = Companion_Default___.EncodeScalarValue((vs).Select((_0_i).Uint32()).(uint32))
   209  		s = _dafny.Companion_Sequence_.Concatenate(_1_next, s)
   210  	}
   211  	return s
   212  }
   213  func (_static *CompanionStruct_Default___) DecodeCodeUnitSequence(s _dafny.Sequence) _dafny.Sequence {
   214  	var _0_parts _dafny.Sequence = Companion_Default___.PartitionCodeUnitSequence(s)
   215  	_ = _0_parts
   216  	var _1_vs _dafny.Sequence = m_Seq.Companion_Default___.Map(func(coer4 func(_dafny.Sequence) uint32) func(interface{}) interface{} {
   217  		return func(arg5 interface{}) interface{} {
   218  			return coer4(arg5.(_dafny.Sequence))
   219  		}
   220  	}(Companion_Default___.DecodeMinimalWellFormedCodeUnitSubsequence), _0_parts)
   221  	_ = _1_vs
   222  	return _1_vs
   223  }
   224  func (_static *CompanionStruct_Default___) DecodeCodeUnitSequenceChecked(s _dafny.Sequence) m_Wrappers.Option {
   225  	var maybeVs m_Wrappers.Option = m_Wrappers.Companion_Option_.Default()
   226  	_ = maybeVs
   227  	var _0_maybeParts m_Wrappers.Option
   228  	_ = _0_maybeParts
   229  	_0_maybeParts = Companion_Default___.PartitionCodeUnitSequenceChecked(s)
   230  	if (_0_maybeParts).Is_None() {
   231  		maybeVs = m_Wrappers.Companion_Option_.Create_None_()
   232  		return maybeVs
   233  	}
   234  	var _1_parts _dafny.Sequence
   235  	_ = _1_parts
   236  	_1_parts = (_0_maybeParts).Dtor_value().(_dafny.Sequence)
   237  	var _2_vs _dafny.Sequence
   238  	_ = _2_vs
   239  	_2_vs = m_Seq.Companion_Default___.Map(func(coer5 func(_dafny.Sequence) uint32) func(interface{}) interface{} {
   240  		return func(arg6 interface{}) interface{} {
   241  			return coer5(arg6.(_dafny.Sequence))
   242  		}
   243  	}(Companion_Default___.DecodeMinimalWellFormedCodeUnitSubsequence), _1_parts)
   244  	maybeVs = m_Wrappers.Companion_Option_.Create_Some_(_2_vs)
   245  	return maybeVs
   246  	return maybeVs
   247  }
   248  
   249  // End of class Default__
   250  
   251  // Definition of class WellFormedCodeUnitSeq
   252  type WellFormedCodeUnitSeq struct {
   253  }
   254  
   255  func New_WellFormedCodeUnitSeq_() *WellFormedCodeUnitSeq {
   256  	_this := WellFormedCodeUnitSeq{}
   257  
   258  	return &_this
   259  }
   260  
   261  type CompanionStruct_WellFormedCodeUnitSeq_ struct {
   262  }
   263  
   264  var Companion_WellFormedCodeUnitSeq_ = CompanionStruct_WellFormedCodeUnitSeq_{}
   265  
   266  func (*WellFormedCodeUnitSeq) String() string {
   267  	return "Utf16EncodingForm.WellFormedCodeUnitSeq"
   268  }
   269  func (_this *CompanionStruct_WellFormedCodeUnitSeq_) Witness() _dafny.Sequence {
   270  	return _dafny.SeqOf()
   271  }
   272  
   273  // End of class WellFormedCodeUnitSeq
   274  
   275  func Type_WellFormedCodeUnitSeq_() _dafny.TypeDescriptor {
   276  	return type_WellFormedCodeUnitSeq_{}
   277  }
   278  
   279  type type_WellFormedCodeUnitSeq_ struct {
   280  }
   281  
   282  func (_this type_WellFormedCodeUnitSeq_) Default() interface{} {
   283  	return Companion_WellFormedCodeUnitSeq_.Witness()
   284  }
   285  
   286  func (_this type_WellFormedCodeUnitSeq_) String() string {
   287  	return "Utf16EncodingForm.WellFormedCodeUnitSeq"
   288  }
   289  func (_this *CompanionStruct_WellFormedCodeUnitSeq_) Is_(__source _dafny.Sequence) bool {
   290  	var _3_s _dafny.Sequence = (__source)
   291  	_ = _3_s
   292  	return Companion_Default___.IsWellFormedCodeUnitSequence(_3_s)
   293  }
   294  
   295  // Definition of class MinimalWellFormedCodeUnitSeq
   296  type MinimalWellFormedCodeUnitSeq struct {
   297  }
   298  
   299  func New_MinimalWellFormedCodeUnitSeq_() *MinimalWellFormedCodeUnitSeq {
   300  	_this := MinimalWellFormedCodeUnitSeq{}
   301  
   302  	return &_this
   303  }
   304  
   305  type CompanionStruct_MinimalWellFormedCodeUnitSeq_ struct {
   306  }
   307  
   308  var Companion_MinimalWellFormedCodeUnitSeq_ = CompanionStruct_MinimalWellFormedCodeUnitSeq_{}
   309  
   310  func (*MinimalWellFormedCodeUnitSeq) String() string {
   311  	return "Utf16EncodingForm.MinimalWellFormedCodeUnitSeq"
   312  }
   313  
   314  // End of class MinimalWellFormedCodeUnitSeq
   315  
   316  func Type_MinimalWellFormedCodeUnitSeq_() _dafny.TypeDescriptor {
   317  	return type_MinimalWellFormedCodeUnitSeq_{}
   318  }
   319  
   320  type type_MinimalWellFormedCodeUnitSeq_ struct {
   321  }
   322  
   323  func (_this type_MinimalWellFormedCodeUnitSeq_) Default() interface{} {
   324  	return _dafny.EmptySeq
   325  }
   326  
   327  func (_this type_MinimalWellFormedCodeUnitSeq_) String() string {
   328  	return "Utf16EncodingForm.MinimalWellFormedCodeUnitSeq"
   329  }
   330  func (_this *CompanionStruct_MinimalWellFormedCodeUnitSeq_) Is_(__source _dafny.Sequence) bool {
   331  	var _4_s _dafny.Sequence = (__source)
   332  	_ = _4_s
   333  	return Companion_Default___.IsMinimalWellFormedCodeUnitSubsequence(_4_s)
   334  }