Map Editable
Module — 2 files
These files compile together (same module folder).
file_1.verse
using { /Verse.org/Simulation }
map_key<public> := interface:
GetKey<public>()<transacts>:comparable
map_value<public> := interface:
DefaultMapKey := string_map_key
DefaultMapValue := int_map_value
string_map_key<public> := class<concrete>(map_key):
@editable
Key<public> : string = ""
GetKey<override>()<transacts>:comparable=return Key
int_map_value<public> := class<concrete>(map_value):
@editable
Value<public> : int = 0
editable_map_item<public> := class<concrete>:
@editable
Key<public> : map_key = DefaultMapKey{}
@editable
Value<public> : map_value = DefaultMapValue{}
editable_map<public> := class<concrete>:
@editable
Items<public> : []editable_map_item = array{}
Find<public>(MapKey : map_key)<transacts><decides>:map_value=
var ReturnMapValue : ?map_value = false
for(Item : Items, not ReturnMapValue?, Item.Key.GetKey() = MapKey.GetKey()):
set ReturnMapValue = option{Item.Value}
return ReturnMapValue?
Sign in to download module
Copy-paste each file above is always free.