Skip to content
/ fhash Public

fpm package implementing a hash table with support for generic keys and values.

License

Notifications You must be signed in to change notification settings

LKedward/fhash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fhash

fpm package implementing a hash table with support for generic keys and values.

License: MIT fpm test ford docs

fpm usage

To use fhash within your fpm project, add the following to your package manifest file (fpm.toml):

[dependencies]
fhash = { git = "https://github.com/LKedward/fhash.git" }

Simple example: scalar intrinsics

The package provides a fhash_tbl_t type with set and get methods for storing and retrieving key-value pairs. The fhash_key interface (aliased to key below) is used to define a valid key from different inputs.

program fhash_demo1
  use fhash, only: fhash_tbl_t, key=>fhash_key
  implicit none
  type(fhash_tbl_t) :: tbl
  integer :: val
  
  call tbl%set(key('my_key_1'), value=10)
  call tbl%set(key('my_key_2'), value=1.0)
  call tbl%set(key(123456), value='a string value')
  call tbl%set(key([1,2,3,4,5]), value=.false.)
  
  call tbl%get(key('my_key_1'),val)
  
end program fhash_demo1

See the Quickstart Guide for an explanation of this example and the API methods used.

Advanced usage

See https://lkedward.github.io/fhash/ for the full API documentation.