package tcpip
- Overview
 - No Docs
 
You can search for identifiers within the package.
in-package search v0.2.0
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=96b6aeafa35f143f7275d1becb6d639472adf3680b8180416de765b6581c466d
    
    
  sha512=3f873c986de5c58df72db2953c6b2a6319963dbbbd0781b55c2878fd1eaa081ebb7cecbee595db7cb3680a6f438904f98cb69ca17e70c7a6d2d1f61277e929bd
    
    
  doc/tcpip.ipv4/Fragments/Cache/index.html
Module Fragments.CacheSource
include Lru.F.S with type k = K.t and type v = V.t
Functional LRU map
A map.
Limiting the weight of bindings
capacity t is the maximum combined weight of bindings that trim will retain.
resize cap t sets t's capacity to cap, while leaving the bindings unchanged.
trim t is t', where weight t' <= capacity t'.
This is achieved by discarding bindings in LRU-to-MRU order.
Access by k
promote k t is t with the binding for k promoted to most-recently-used, or t if k is not bound in t.
add k v t adds the binding k -> v to t as the most-recently-used binding.
Note add does not remove bindings. To ensure that the resulting map is not over capacity, compose with trim.
pop k t is (v, t'), where v is the value bound to k, and t' is t without the binding k -> t, or None if k is not bound in t.
Access to least-recently-used bindings
lru t is the least-recently-used binding in t, or None, when t is empty.
pop_lru t is ((k, v), t', where (k, v) is lru t, and t' is t without that binding.
Aggregate access
fold f z t is f k0 v0 (... (f kn vn z)), where k0 -> v0 is LRU and kn -> vn is MRU.
fold_k f z t folds in key-increasing order, ignoring the recently-used ordering.
Note fold_k is faster than fold.
iter f t applies f to all the bindings in t in in LRU-to-MRU order.
iter_k f t applies f in key-increasing order, ignoring the recently-used ordering.
Note iter_k is faster than iter.
Conversions
Pretty-printing
val pp : 
  ?pp_size:(Format.formatter -> (int * int) -> unit) ->
  ?sep:(Format.formatter -> unit -> unit) ->
  (Format.formatter -> (k * v) -> unit) ->
  Format.formatter ->
  t ->
  unit