I am working on a set of extensable types for Erlang using behaviours
and Paramaterized modules (feel free to ask why paramaterized
modules) for erlware_commons. In doing this I realized that the API is
going to be very important, since it will serve as the basis for many
other types. To that end I decided to put the API out for comment. I
will do this as a set of specs and docs.
-opaque map(_KeyT, _ValueT) :: term().
%% @doc empties the map.
-spec clear() -> map().
%% @doc returns a boolean indicating if this map has the specified key
-spec has(term()) -> boolean().
%% @doc check to see if the specified value exists in the map
-spec has_value(Term()) -> boolean().
%% @doc return the key value pairs as a set of {key, value} pairs
-spec as_set() -> set().
%% @doc get the item from the may
-spec get(term()) -> term().
%% @doc return all keys in the map as a set
-spec keys(term()) -> set().
%% @doc Add a value to the map
-spec put(term(), term()) -> map().
%% @doc remove a value from the map
-spec remove(term()) -> map().
%% @doc get the current number of key value pairs in the map
-spec size() -> number().
%% @doc get all the values in the map as a sequence
-spec values() -> sequence().
As you can tell from the specs I am going to define sets and sequences
very quickly as well.
--
Eric Merritt
Erlang & OTP in Action (Manning) http://manning.com/logan
http://twitter.com/ericbmerritt
http://erlware.org
--
You received this message because you are subscribed to the Google Groups
"erlware-dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/erlware-dev?hl=en.