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 }