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 }