# `locus_filesystem_load`
[🔗](https://github.com/g-andrade/locus/blob/2.3.15/src/locus_filesystem_load.erl#L24)

Loads a file from the filesystem without blocking the caller.

# `event`

```erlang
-type event() :: event_load_attempt_started() | event_load_attempt_dismissed().
```

# `event_load_attempt_dismissed`

```erlang
-type event_load_attempt_dismissed() :: {load_attempt_dismissed, source()}.
```

# `event_load_attempt_started`

```erlang
-type event_load_attempt_started() :: {load_attempt_started, source()}.
```

# `msg`

```erlang
-type msg() ::
          {event, event()} |
          {finished, {success, success()}} |
          {finished, dismissed} |
          {finished, {error, not_found}} |
          {finished, {error, term()}}.
```

# `path`

```erlang
-type path() :: file:filename_all().
```

# `source`

```erlang
-type source() :: {cache | filesystem, path()}.
```

# `state`

```erlang
-opaque state()
```

# `success`

```erlang
-type success() :: #{modified_on := calendar:datetime(), content := binary()}.
```

# `code_change`

```erlang
-spec code_change(term(), state(), term()) -> {ok, state()}.
```

# `handle_call`

```erlang
-spec handle_call(term(), {pid(), reference()}, state()) -> {stop, unexpected_call, state()}.
```

# `handle_cast`

```erlang
-spec handle_cast(term(), state()) -> {stop, unexpected_cast, state()}.
```

# `handle_info`

```erlang
-spec handle_info(term(), state()) -> {stop, normal, state()} | {stop, unexpected_info, state()}.
```

# `init`

```erlang
-spec init([InitArg, ...]) -> {ok, state()}
              when
                  InitArg :: OwnerPid | Source | PrevModificationDT,
                  OwnerPid :: pid(),
                  Source :: source(),
                  PrevModificationDT :: calendar:datetime() | unknown.
```

# `start_link`

```erlang
-spec start_link(source(), calendar:datetime() | unknown) -> {ok, pid()}.
```

# `terminate`

```erlang
-spec terminate(term(), state()) -> ok.
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
