Structurevapor 4.106.1Vapor
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.
struct Storage
Citizens in Vapor
Conformances
Type members
init(logger: Logger
) Create a new
Storage
container using the given logger.
Instance members
subscript<Key>(Key.Type
) -> Key.Value? Read/write access to values via keyed subscript.
subscript<Key>(Key.Type, default: @autoclosure () -> Key.Value
) -> Key.Value Read access to a value via keyed subscript, adding the provided default value to the storage if the key does not already exist. Similar to
Swift/Dictionary/subscript(key:default:)
. ThedefaultValue
autoclosure is evaluated only when the key does not already exist in the container.func asyncShutdown(
) async 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
.func clear(
) Delete all values from the container. Does not invoke shutdown closures.
func contains<Key>(Key.Type
) -> Bool Test whether the given key exists in the container.
func get<Key>(Key.Type
) -> Key.Value? Get the value of the given key if it exists and is of the proper type.
func set<Key>(Key.Type, to: Key.Value?, onShutdown: ((Key.Value) throws -> ())?
) Set or remove a value for a given key, optionally providing a shutdown closure for the value.
func setWithAsyncShutdown<Key>(Key.Type, to: Key.Value?, onShutdown: ((Key.Value) async throws -> ())?
) async Set or remove a value for a given key, optionally providing an async shutdown closure for the value.
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
.