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

     1  package UUID
     2  
     3  import (
     4  	"github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
     5  	"github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
     6  	"github.com/google/uuid"
     7  )
     8  
     9  func ToByteArray(seq dafny.Sequence) Wrappers.Result {
    10  	var s string
    11  	for i := dafny.Iterate(seq); ; {
    12  		val, notEndOfSequence := i()
    13  		if notEndOfSequence {
    14  			s = s + string(val.(dafny.Char))
    15  		} else {
    16  			break
    17  		}
    18  	}
    19  	uuidString := uuid.MustParse(s)
    20  	return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfBytes(uuidString[:]))
    21  }
    22  
    23  func FromByteArray(seq dafny.Sequence) Wrappers.Result {
    24  	byteArray := dafny.ToByteArray(seq)
    25  	fromBytes, err := uuid.FromBytes(byteArray)
    26  	if err != nil {
    27  		return Wrappers.Companion_Result_.Create_Failure_(err)
    28  	}
    29  	return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfChars([]dafny.Char(fromBytes.String())...))
    30  }
    31  
    32  func GenerateUUID() Wrappers.Result {
    33  	return Wrappers.Companion_Result_.Create_Success_(dafny.SeqOfChars([]dafny.Char(uuid.NewString())...))
    34  }