mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		
							
								
								
									
										44
									
								
								vendor/github.com/google/uuid/version1.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								vendor/github.com/google/uuid/version1.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| // Copyright 2016 Google Inc.  All rights reserved. | ||||
| // Use of this source code is governed by a BSD-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package uuid | ||||
|  | ||||
| import ( | ||||
| 	"encoding/binary" | ||||
| ) | ||||
|  | ||||
| // NewUUID returns a Version 1 UUID based on the current NodeID and clock | ||||
| // sequence, and the current time.  If the NodeID has not been set by SetNodeID | ||||
| // or SetNodeInterface then it will be set automatically.  If the NodeID cannot | ||||
| // be set NewUUID returns nil.  If clock sequence has not been set by | ||||
| // SetClockSequence then it will be set automatically.  If GetTime fails to | ||||
| // return the current NewUUID returns nil and an error. | ||||
| // | ||||
| // In most cases, New should be used. | ||||
| func NewUUID() (UUID, error) { | ||||
| 	nodeMu.Lock() | ||||
| 	if nodeID == zeroID { | ||||
| 		setNodeInterface("") | ||||
| 	} | ||||
| 	nodeMu.Unlock() | ||||
|  | ||||
| 	var uuid UUID | ||||
| 	now, seq, err := GetTime() | ||||
| 	if err != nil { | ||||
| 		return uuid, err | ||||
| 	} | ||||
|  | ||||
| 	timeLow := uint32(now & 0xffffffff) | ||||
| 	timeMid := uint16((now >> 32) & 0xffff) | ||||
| 	timeHi := uint16((now >> 48) & 0x0fff) | ||||
| 	timeHi |= 0x1000 // Version 1 | ||||
|  | ||||
| 	binary.BigEndian.PutUint32(uuid[0:], timeLow) | ||||
| 	binary.BigEndian.PutUint16(uuid[4:], timeMid) | ||||
| 	binary.BigEndian.PutUint16(uuid[6:], timeHi) | ||||
| 	binary.BigEndian.PutUint16(uuid[8:], seq) | ||||
| 	copy(uuid[10:], nodeID[:]) | ||||
|  | ||||
| 	return uuid, nil | ||||
| } | ||||
		Reference in New Issue
	
	Block a user