FileStore.Middleware (file_store v0.3.0) View Source
Middleware allows you to enhance your store with additional functionality.
The following middlewares ship with this library.
To use a middleware, simply wrap your existing store with the middleware:
iex> store = FileStore.Adapters.Disk.new([...])
%FileStore.Adapters.Disk{...}
iex> store = FileStore.Middleware.Logger.new(store)
%FileStore.Middleware.Logger{...}
iex> FileStore.read(store, "test.txt")
# 02:37:30.724 [debug] READ OK key="test.txt"
{:ok, "hello"}
You can compose multiple middlewares, but order does matter. The following order is recommended:
FileStore.Adapters.Null.new()
|> FileStore.Middleware.Errors.new()
|> FileStore.Middleware.Prefix.new(prefix: "foo")
|> FileStore.Middleware.Logger.new()