// Copyright 2019 The LevelDB-Go and Pebble Authors. All rights reserved. Use // of this source code is governed by a BSD-style license that can be found in // the LICENSE file. package randvar import "golang.org/x/exp/rand" // Static models a random variable that pulls from a distribution with static // bounds type Static interface { Uint64(rng *rand.Rand) uint64 } // Dynamic models a random variable that pulls from a distribution with an // upper bound that can change dynamically using the IncMax method. type Dynamic interface { Static // Increment the max value the variable will return. IncMax(delta int) // Read the current max value the variable will return. Max() uint64 }