github.com/bhojpur/cache@v0.0.4/pkg/engine/null.go (about)

     1  package engine
     2  
     3  // Copyright (c) 2018 Bhojpur Consulting Private Limited, India. All rights reserved.
     4  
     5  // Permission is hereby granted, free of charge, to any person obtaining a copy
     6  // of this software and associated documentation files (the "Software"), to deal
     7  // in the Software without restriction, including without limitation the rights
     8  // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     9  // copies of the Software, and to permit persons to whom the Software is
    10  // furnished to do so, subject to the following conditions:
    11  
    12  // The above copyright notice and this permission notice shall be included in
    13  // all copies or substantial portions of the Software.
    14  
    15  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    16  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    17  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    18  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    19  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    20  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    21  // THE SOFTWARE.
    22  
    23  // nullCache is a no-op cache that does not store items
    24  type nullCache struct{}
    25  
    26  // Get never returns anything on the nullCache
    27  func (n *nullCache) Get(_ string) (interface{}, bool) {
    28  	return nil, false
    29  }
    30  
    31  // Set is a no-op in the nullCache
    32  func (n *nullCache) Set(_ string, _ interface{}) bool {
    33  	return false
    34  }
    35  
    36  // ForEach iterates the nullCache, which is always empty
    37  func (n *nullCache) ForEach(_ func(interface{}) bool) {}
    38  
    39  // Delete is a no-op in the nullCache
    40  func (n *nullCache) Delete(_ string) {}
    41  
    42  // Clear is a no-op in the nullCache
    43  func (n *nullCache) Clear() {}
    44  
    45  // Wait is a no-op in the nullcache
    46  func (n *nullCache) Wait() {}
    47  
    48  func (n *nullCache) Len() int {
    49  	return 0
    50  }
    51  
    52  // Capacity returns the capacity of the nullCache, which is always 0
    53  func (n *nullCache) UsedCapacity() int64 {
    54  	return 0
    55  }
    56  
    57  // Capacity returns the capacity of the nullCache, which is always 0
    58  func (n *nullCache) MaxCapacity() int64 {
    59  	return 0
    60  }
    61  
    62  // SetCapacity sets the capacity of the null cache, which is a no-op
    63  func (n *nullCache) SetCapacity(_ int64) {}
    64  
    65  func (n *nullCache) Evictions() int64 {
    66  	return 0
    67  }