Nostrum.Cache.MemberCache.ETS (nostrum v0.11.0-dev)

View Source

An ETS-based cache for members.

If you need to get the table reference for the table used by this module, please use the table/0 function.

Summary

Functions

Bulk create a chunk of members for the given guild in the cache.

Stream all members on the given guild.

Stream all members with the given user ID.

Returns a specification to start this module under a supervisor.

Clear any objects in the cache.

Add the given member to the given guild in the cache.

Remove the given member from the given guild in the cache.

Retrieve the member for the given guild and user in the cache.

Set up the cache's ETS table.

Start the supervisor.

Retrieve the ETS table reference used for the cache.

Update the given member for the given guild in the cache.

Wrap long-running queries operations.

Functions

bulk_create(guild_id, members)

(since 0.7.0)

Bulk create a chunk of members for the given guild in the cache.

by_guild(guild_id)

(since 0.10.0)

Stream all members on the given guild.

by_user(user_id)

(since 0.10.0)

Stream all members with the given user ID.

child_spec(init_arg)

(since 0.7.0)

Returns a specification to start this module under a supervisor.

See Supervisor.

clear()

(since 0.8.0)
@spec clear() :: :ok

Clear any objects in the cache.

create(guild_id, payload)

(since 0.7.0)

Add the given member to the given guild in the cache.

delete(guild_id, user_id)

(since 0.7.0)

Remove the given member from the given guild in the cache.

get(guild_id, user_id)

(since 0.7.0)

Retrieve the member for the given guild and user in the cache.

init(opts)

(since 0.7.0)

Set up the cache's ETS table.

start_link(opts)

(since 0.7.0)

Start the supervisor.

table()

(since 0.8.0)
@spec table() :: :ets.table()

Retrieve the ETS table reference used for the cache.

update(guild_id, payload)

(since 0.7.0)

Update the given member for the given guild in the cache.

wrap_query(fun)

(since 0.10.0)
@spec wrap_query((-> query_result)) :: query_result when query_result: term()

Wrap long-running queries operations.

Safety

Any operations are surrounded by :ets.safe_fixtable. It is therefore recommended to finish your read quickly.