- Add
update_element/3
- Thanks @APB9785 - Add
match_object/{1,2,3}
andmatch_delete/2
- Thanks @APB9785 - Add
give_away/3
,accept/1
, andaccept/6
- Thanks @APB9785
- Add Set.fetch/2 - Thanks @christhekeele
- Rename
Ets
toETS
- Move
ETS.Set.KeyValueSet
toETS.KeyValueSet
- Add
select/1
andselect/3
toETS.set
- Thanks @zachdaniel - Handle and return :position_out_of_bounds error when calling
get_element
/lookup_element
with a position greater than the size of one of the returned tuples - Add documentation for named table usage pattern.
- Handle and return :read_protected error when reading from a private table from a different process
- Handle and return :write_protected error when inserting into a non-public table from a different process
- Handle and return :invalid_select_spec error
- Handle and return :record_too_small when size of inserted record is smaller than keypos
- Add
Access
protocol forKeyValueSet
- Thanks @am-kantox - Fix return issue in
KeyValueSet
delete/delete_all - Thanks @am-kantox - Add documentation for choosing which table to use
- Add
ETS.KeyValueSet
- Handle and return
:table_already_exists
onnew
- Fix spec for
Set.get
to reflect possible nil return - Implemented
delete_all
forSet
andBag
- Implemented
select
forSet
andBag
- Implemented
select_delete
forSet
andBag
- Implemented
get_element
/lookup_element
forSet
andBag
- Add
Bag
s toETS.all
- Add list default option values in
new
documentation
- Implement
ETS.Bag
- Combined
put_multi
intoput
andput_multi_new
intoput_new
put_new
with existing key(s) is no longer an error condition- Catch list of non-tuples passed to
put
orput_new
- Fix issue with docs
- Add
get_table
to access underlying ets table reference (to directly access not-yet-implemented functions of:ets
)
- Redesign from ground up to use module/struct based approach
- Implemented
ETS.Set
andETS.Base
- Set up CI and Readme badges