github.com/cockroachdb/pebble@v0.0.0-20231214172447-ab4952c5f87b/internal/randvar/rand.go (about)

     1  // Copyright 2019 The LevelDB-Go and Pebble Authors. All rights reserved. Use
     2  // of this source code is governed by a BSD-style license that can be found in
     3  // the LICENSE file.
     4  
     5  package randvar
     6  
     7  import (
     8  	"time"
     9  
    10  	"golang.org/x/exp/rand"
    11  )
    12  
    13  // NewRand creates a new random number generator seeded with the current time.
    14  func NewRand() *rand.Rand {
    15  	return rand.New(rand.NewSource(uint64(time.Now().UnixNano())))
    16  }
    17  
    18  func ensureRand(rng *rand.Rand) *rand.Rand {
    19  	if rng != nil {
    20  		return rng
    21  	}
    22  	return NewRand()
    23  }