Structure
Storage
public struct Storage
A container providing arbitrary storage for extensions of an existing type, designed to obviate
the problem of being unable to add stored properties to a type in an extension. Each stored item
is keyed by a type conforming to StorageKey
protocol.
Initializers
init(logger:)
public init(logger: Logger = .init(label: "codes.vapor.storage"))
Create a new Storage
container using the given logger.
Methods
clear()
public mutating func clear()
Delete all values from the container. Does not invoke shutdown closures.
contains(_:)
public func contains<Key>(_ key: Key.Type) -> Bool
Test whether the given key exists in the container.
get(_:)
public func get<Key>(_ key: Key.Type) -> Key.Value?
where Key: StorageKey
Get the value of the given key if it exists and is of the proper type.
set(_:to:onShutdown:)
public mutating func set<Key>(
_ key: Key.Type,
to value: Key.Value?,
onShutdown: ((Key.Value) throws -> ())? = nil
)
where Key: StorageKey
Set or remove a value for a given key, optionally providing a shutdown closure for the value.
If a key that has a shutdown closure is removed by this method, the closure is invoked.
shutdown()
public func shutdown()
For every key in the container having a shutdown closure, invoke the closure. Designed to
be invoked during an explicit app shutdown process or in a reference type's deinit
.