tools: LruCache: add dropcheck marker
See https://doc.rust-lang.org/nomicon/phantom-data.html Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
		@ -5,6 +5,7 @@
 | 
			
		||||
//! is used to keep track of the cache access order.
 | 
			
		||||
 | 
			
		||||
use std::collections::HashMap;
 | 
			
		||||
use std::marker::PhantomData;
 | 
			
		||||
 | 
			
		||||
/// Interface for getting values on cache misses.
 | 
			
		||||
pub trait Cacher<V> {
 | 
			
		||||
@ -24,6 +25,8 @@ struct CacheNode<V> {
 | 
			
		||||
    value: V,
 | 
			
		||||
    prev: *mut CacheNode<V>,
 | 
			
		||||
    next: *mut CacheNode<V>,
 | 
			
		||||
    // Dropcheck marker. See the phantom-data section in the rustonomicon.
 | 
			
		||||
    _marker: PhantomData<Box<CacheNode<V>>>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<V> CacheNode<V> {
 | 
			
		||||
@ -33,6 +36,7 @@ impl<V> CacheNode<V> {
 | 
			
		||||
            value,
 | 
			
		||||
            prev: std::ptr::null_mut(),
 | 
			
		||||
            next: std::ptr::null_mut(),
 | 
			
		||||
            _marker: PhantomData,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -89,6 +93,8 @@ pub struct LruCache<V> {
 | 
			
		||||
    head: *mut CacheNode<V>,
 | 
			
		||||
    tail: *mut CacheNode<V>,
 | 
			
		||||
    capacity: usize,
 | 
			
		||||
    // Dropcheck marker. See the phantom-data section in the rustonomicon.
 | 
			
		||||
    _marker: PhantomData<Box<CacheNode<V>>>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<V> LruCache<V> {
 | 
			
		||||
@ -99,6 +105,7 @@ impl<V> LruCache<V> {
 | 
			
		||||
            head: std::ptr::null_mut(),
 | 
			
		||||
            tail: std::ptr::null_mut(),
 | 
			
		||||
            capacity,
 | 
			
		||||
            _marker: PhantomData,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user