|
|
@ -33,22 +33,32 @@ ins(Name, Values) -> |
|
|
|
[ets:insert(Name, {erlang:unique_integer(), Value}) || Value <- Values], |
|
|
|
true. |
|
|
|
|
|
|
|
-spec outF(Name :: atom()) -> empty | Value :: term(). |
|
|
|
-spec outF(Name :: atom() | ets:tid()) -> empty | Value :: term(). |
|
|
|
outF(Name) -> |
|
|
|
case ets:first_take(Name) of |
|
|
|
[] -> |
|
|
|
case ets:first(Name) of |
|
|
|
'$end_of_table' -> |
|
|
|
empty; |
|
|
|
[{_, Value}] -> |
|
|
|
Value |
|
|
|
Key -> |
|
|
|
case ets:take(Name, Key) of |
|
|
|
[] -> |
|
|
|
outF(Name); |
|
|
|
[{_, Value}] -> |
|
|
|
Value |
|
|
|
end |
|
|
|
end. |
|
|
|
|
|
|
|
-spec outL(Name :: atom()) -> empty | Value :: term(). |
|
|
|
-spec outL(Name :: atom() | ets:tid()) -> empty | Value :: term(). |
|
|
|
outL(Name) -> |
|
|
|
case ets:last_take(Name) of |
|
|
|
[] -> |
|
|
|
case ets:last(Name) of |
|
|
|
'$end_of_table' -> |
|
|
|
empty; |
|
|
|
[{_, Value}] -> |
|
|
|
Value |
|
|
|
Key -> |
|
|
|
case ets:take(Name, Key) of |
|
|
|
[] -> |
|
|
|
outL(Name); |
|
|
|
[{_, Value}] -> |
|
|
|
Value |
|
|
|
end |
|
|
|
end. |
|
|
|
|
|
|
|
-spec clear(Name :: atom()) -> ok. |
|
|
|