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

     1  // Package HexStrings
     2  // Dafny module HexStrings compiled into Go
     3  
     4  package HexStrings
     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_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals"
    11  	m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear"
    12  	m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod"
    13  	m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO"
    14  	m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions"
    15  	m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals"
    16  	m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm"
    17  	m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
    18  	m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals"
    19  	m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear"
    20  	m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul"
    21  	m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals"
    22  	m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear"
    23  	m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power"
    24  	m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
    25  	m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
    26  	m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
    27  	m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting"
    28  	m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary"
    29  	m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop"
    30  	m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence"
    31  	m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String"
    32  	m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt"
    33  	m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams"
    34  	m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings"
    35  	m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
    36  	m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm"
    37  	m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
    38  	m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    39  	m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
    40  	_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    41  )
    42  
    43  var _ = os.Args
    44  var _ _dafny.Dummy__
    45  var _ m__System.Dummy__
    46  var _ m_Wrappers.Dummy__
    47  var _ m_Relations.Dummy__
    48  var _ m_Seq_MergeSort.Dummy__
    49  var _ m__Math.Dummy__
    50  var _ m_Seq.Dummy__
    51  var _ m_BoundedInts.Dummy__
    52  var _ m__Unicode.Dummy__
    53  var _ m_Functions.Dummy__
    54  var _ m_Utf8EncodingForm.Dummy__
    55  var _ m_Utf16EncodingForm.Dummy__
    56  var _ m_UnicodeStrings.Dummy__
    57  var _ m_FileIO.Dummy__
    58  var _ m_GeneralInternals.Dummy__
    59  var _ m_MulInternalsNonlinear.Dummy__
    60  var _ m_MulInternals.Dummy__
    61  var _ m_Mul.Dummy__
    62  var _ m_ModInternalsNonlinear.Dummy__
    63  var _ m_DivInternalsNonlinear.Dummy__
    64  var _ m_ModInternals.Dummy__
    65  var _ m_DivInternals.Dummy__
    66  var _ m_DivMod.Dummy__
    67  var _ m_Power.Dummy__
    68  var _ m_Logarithm.Dummy__
    69  var _ m_StandardLibraryInterop.Dummy__
    70  var _ m_StandardLibrary_UInt.Dummy__
    71  var _ m_StandardLibrary_Sequence.Dummy__
    72  var _ m_StandardLibrary_String.Dummy__
    73  var _ m_StandardLibrary.Dummy__
    74  var _ m_Streams.Dummy__
    75  var _ m_Sorting.Dummy__
    76  
    77  type Dummy__ struct{}
    78  
    79  // Definition of class Default__
    80  type Default__ struct {
    81  	dummy byte
    82  }
    83  
    84  func New_Default___() *Default__ {
    85  	_this := Default__{}
    86  
    87  	return &_this
    88  }
    89  
    90  type CompanionStruct_Default___ struct {
    91  }
    92  
    93  var Companion_Default___ = CompanionStruct_Default___{}
    94  
    95  func (_this *Default__) Equals(other *Default__) bool {
    96  	return _this == other
    97  }
    98  
    99  func (_this *Default__) EqualsGeneric(x interface{}) bool {
   100  	other, ok := x.(*Default__)
   101  	return ok && _this.Equals(other)
   102  }
   103  
   104  func (*Default__) String() string {
   105  	return "HexStrings.Default__"
   106  }
   107  func (_this *Default__) ParentTraits_() []*_dafny.TraitID {
   108  	return [](*_dafny.TraitID){}
   109  }
   110  
   111  var _ _dafny.TraitOffspring = &Default__{}
   112  
   113  func (_static *CompanionStruct_Default___) HexChar(x uint8) _dafny.Char {
   114  	if (x) < (uint8(10)) {
   115  		return (_dafny.Char('0')) + (_dafny.Char((x)))
   116  	} else {
   117  		return (_dafny.Char('a')) + (_dafny.Char(((x) - (func() uint8 { return (uint8(10)) })())))
   118  	}
   119  }
   120  func (_static *CompanionStruct_Default___) IsLooseHexChar(ch _dafny.Char) bool {
   121  	return ((((_dafny.Char('0')) <= (ch)) && ((ch) <= (_dafny.Char('9')))) || (((_dafny.Char('a')) <= (ch)) && ((ch) <= (_dafny.Char('f'))))) || (((_dafny.Char('A')) <= (ch)) && ((ch) <= (_dafny.Char('F'))))
   122  }
   123  func (_static *CompanionStruct_Default___) IsHexChar(ch _dafny.Char) bool {
   124  	return (((_dafny.Char('0')) <= (ch)) && ((ch) <= (_dafny.Char('9')))) || (((_dafny.Char('a')) <= (ch)) && ((ch) <= (_dafny.Char('f'))))
   125  }
   126  func (_static *CompanionStruct_Default___) IsHexString(s _dafny.Sequence) bool {
   127  	return _dafny.Quantifier((s).UniqueElements(), true, func(_forall_var_0 _dafny.Char) bool {
   128  		var _0_ch _dafny.Char
   129  		_0_ch = interface{}(_forall_var_0).(_dafny.Char)
   130  		return !(_dafny.Companion_Sequence_.Contains(s, _0_ch)) || (Companion_Default___.IsHexChar(_0_ch))
   131  	})
   132  }
   133  func (_static *CompanionStruct_Default___) IsLooseHexString(s _dafny.Sequence) bool {
   134  	return _dafny.Quantifier((s).UniqueElements(), true, func(_forall_var_0 _dafny.Char) bool {
   135  		var _0_ch _dafny.Char
   136  		_0_ch = interface{}(_forall_var_0).(_dafny.Char)
   137  		return !(_dafny.Companion_Sequence_.Contains(s, _0_ch)) || (Companion_Default___.IsLooseHexChar(_0_ch))
   138  	})
   139  }
   140  func (_static *CompanionStruct_Default___) HexVal(ch _dafny.Char) uint8 {
   141  	if ((_dafny.Char('0')) <= (ch)) && ((ch) <= (_dafny.Char('9'))) {
   142  		return (uint8(ch)) - (func() uint8 { return (uint8(_dafny.Char('0'))) })()
   143  	} else if ((_dafny.Char('a')) <= (ch)) && ((ch) <= (_dafny.Char('f'))) {
   144  		return ((uint8(ch)) - (func() uint8 { return (uint8(_dafny.Char('a'))) })()) + (uint8(10))
   145  	} else {
   146  		return ((uint8(ch)) - (func() uint8 { return (uint8(_dafny.Char('A'))) })()) + (uint8(10))
   147  	}
   148  }
   149  func (_static *CompanionStruct_Default___) HexStr(x uint8) _dafny.Sequence {
   150  	if (x) < (uint8(16)) {
   151  		var _0_res _dafny.Sequence = _dafny.SeqOfChars(_dafny.Char('0'), Companion_Default___.HexChar(x))
   152  		_ = _0_res
   153  		return _0_res
   154  	} else {
   155  		var _1_res _dafny.Sequence = _dafny.SeqOfChars(Companion_Default___.HexChar((x)/(uint8(16))), Companion_Default___.HexChar((x)%(uint8(16))))
   156  		_ = _1_res
   157  		return _1_res
   158  	}
   159  }
   160  func (_static *CompanionStruct_Default___) HexValue(x _dafny.Sequence) uint8 {
   161  	return ((Companion_Default___.HexVal((x).Select(0).(_dafny.Char))) * (uint8(16))) + (Companion_Default___.HexVal((x).Select(1).(_dafny.Char)))
   162  }
   163  func (_static *CompanionStruct_Default___) ToHexString(val _dafny.Sequence) _dafny.Sequence {
   164  	var _0___accumulator _dafny.Sequence = _dafny.SeqOfChars()
   165  	_ = _0___accumulator
   166  	goto TAIL_CALL_START
   167  TAIL_CALL_START:
   168  	if (_dafny.IntOfUint32((val).Cardinality())).Sign() == 0 {
   169  		return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfChars())
   170  	} else {
   171  		_0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, Companion_Default___.HexStr((val).Select(0).(uint8)))
   172  		var _in0 _dafny.Sequence = (val).Drop(1)
   173  		_ = _in0
   174  		val = _in0
   175  		goto TAIL_CALL_START
   176  	}
   177  }
   178  func (_static *CompanionStruct_Default___) FromHexString(data _dafny.Sequence) _dafny.Sequence {
   179  	var _0___accumulator _dafny.Sequence = _dafny.SeqOf()
   180  	_ = _0___accumulator
   181  	goto TAIL_CALL_START
   182  TAIL_CALL_START:
   183  	if (_dafny.IntOfUint32((data).Cardinality())).Sign() == 0 {
   184  		return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf())
   185  	} else if ((_dafny.IntOfUint32((data).Cardinality())).Modulo(_dafny.IntOfInt64(2))).Cmp(_dafny.One) == 0 {
   186  		_0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(Companion_Default___.HexVal((data).Select(0).(_dafny.Char))))
   187  		var _in0 _dafny.Sequence = (data).Drop(1)
   188  		_ = _in0
   189  		data = _in0
   190  		goto TAIL_CALL_START
   191  	} else {
   192  		_0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(Companion_Default___.HexValue((data).Take(2))))
   193  		var _in1 _dafny.Sequence = (data).Drop(2)
   194  		_ = _in1
   195  		data = _in1
   196  		goto TAIL_CALL_START
   197  	}
   198  }
   199  
   200  // End of class Default__
   201  
   202  // Definition of class HexString
   203  type HexString struct {
   204  }
   205  
   206  func New_HexString_() *HexString {
   207  	_this := HexString{}
   208  
   209  	return &_this
   210  }
   211  
   212  type CompanionStruct_HexString_ struct {
   213  }
   214  
   215  var Companion_HexString_ = CompanionStruct_HexString_{}
   216  
   217  func (*HexString) String() string {
   218  	return "HexStrings.HexString"
   219  }
   220  
   221  // End of class HexString
   222  
   223  func Type_HexString_() _dafny.TypeDescriptor {
   224  	return type_HexString_{}
   225  }
   226  
   227  type type_HexString_ struct {
   228  }
   229  
   230  func (_this type_HexString_) Default() interface{} {
   231  	return _dafny.EmptySeq.SetString()
   232  }
   233  
   234  func (_this type_HexString_) String() string {
   235  	return "HexStrings.HexString"
   236  }
   237  func (_this *CompanionStruct_HexString_) Is_(__source _dafny.Sequence) bool {
   238  	var _0_x _dafny.Sequence = (__source)
   239  	_ = _0_x
   240  	return Companion_Default___.IsHexString(_0_x)
   241  }
   242  
   243  // Definition of class LooseHexString
   244  type LooseHexString struct {
   245  }
   246  
   247  func New_LooseHexString_() *LooseHexString {
   248  	_this := LooseHexString{}
   249  
   250  	return &_this
   251  }
   252  
   253  type CompanionStruct_LooseHexString_ struct {
   254  }
   255  
   256  var Companion_LooseHexString_ = CompanionStruct_LooseHexString_{}
   257  
   258  func (*LooseHexString) String() string {
   259  	return "HexStrings.LooseHexString"
   260  }
   261  
   262  // End of class LooseHexString
   263  
   264  func Type_LooseHexString_() _dafny.TypeDescriptor {
   265  	return type_LooseHexString_{}
   266  }
   267  
   268  type type_LooseHexString_ struct {
   269  }
   270  
   271  func (_this type_LooseHexString_) Default() interface{} {
   272  	return _dafny.EmptySeq.SetString()
   273  }
   274  
   275  func (_this type_LooseHexString_) String() string {
   276  	return "HexStrings.LooseHexString"
   277  }
   278  func (_this *CompanionStruct_LooseHexString_) Is_(__source _dafny.Sequence) bool {
   279  	var _1_x _dafny.Sequence = (__source)
   280  	_ = _1_x
   281  	return Companion_Default___.IsLooseHexString(_1_x)
   282  }