PreviousUpNext

14.4.102  Typelocked_Double_Keyed_Hashtable

The standard library Typelocked_Double_Keyed_hashtable api defines access to hashtables which take a pair of keys and are specialized to hold a particular value type.

Implementations of the Typelocked_Double_Keyed_hashtable api may be generated using typelocked_double_keyed_hashtable_g from src/lib/src/typelocked-double-keyed-hashtable-g.pkg.

The Typelocked_Double_Keyed_hashtable api source code is in src/lib/src/typelocked-double-keyed-hashtable.api.

The above information is manually maintained and may contain errors.

api {
    package key1 : api {
                       Hash_Key ;
                       hash_value : Hash_Key -> Unt;
                       same_key : (Hash_Key , Hash_Key) -> Bool;
                   };;
    package key2 : api {
                       Hash_Key ;
                       hash_value : Hash_Key -> Unt;
                       same_key : (Hash_Key , Hash_Key) -> Bool;
                   };;
    Hashtable X;
    make_hashtable : (Int , Exception) -> Hashtable(X );
    clear : Hashtable(X ) -> Void;
    set : Hashtable(X )
          -> (key1::Hash_Key , key2::Hash_Key , X) -> Void;
    in_domain1 : Hashtable(X ) -> key1::Hash_Key -> Bool;
    in_domain2 : Hashtable(X ) -> key2::Hash_Key -> Bool;
    get1 : Hashtable(X ) -> key1::Hash_Key -> X;
    get2 : Hashtable(X ) -> key2::Hash_Key -> X;
    find1 : Hashtable(X ) -> key1::Hash_Key -> Null_Or(X );
    find2 : Hashtable(X ) -> key2::Hash_Key -> Null_Or(X );
    remove1 : Hashtable(X ) -> key1::Hash_Key -> X;
    remove2 : Hashtable(X ) -> key2::Hash_Key -> X;
    vals_count : Hashtable(X ) -> Int;
    vals_list : Hashtable(X ) -> List(X );
    keyvals_list : Hashtable(X )
                   -> List(((key1::Hash_Key , key2::Hash_Key , X)) );
    apply : (X -> Void) -> Hashtable(X ) -> Void;
    keyed_apply : ((key1::Hash_Key , key2::Hash_Key , X) -> Void)
                  -> Hashtable(X ) -> Void;
    map : (X -> Y) -> Hashtable(X ) -> Hashtable(Y );
    keyed_map : ((key1::Hash_Key , key2::Hash_Key , X) -> Y)
                -> Hashtable(X ) -> Hashtable(Y );
    fold : ((X , Y) -> Y) -> Y -> Hashtable(X ) -> Y;
    foldi : ((key1::Hash_Key , key2::Hash_Key , X , Y) -> Y)
            -> Y -> Hashtable(X ) -> Y;
    filter : (X -> Bool) -> Hashtable(X ) -> Void;
    keyed_filter : ((key1::Hash_Key , key2::Hash_Key , X) -> Bool)
                   -> Hashtable(X ) -> Void;
    copy : Hashtable(X ) -> Hashtable(X );
    bucket_sizes : Hashtable(X ) -> (List(Int ) , List(Int ));
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext