//
// Copyright (c) 2010, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 10 Aug 19 Andy Frank Creation
//
**
** Storage models a DOM Storage.
**
** See [pod doc]`pod-doc#win` for details.
**
@Js
class Storage
{
//////////////////////////////////////////////////////////////////////////
// Constrcutor
//////////////////////////////////////////////////////////////////////////
** Private ctor.
private new make() {}
//////////////////////////////////////////////////////////////////////////
// Access
//////////////////////////////////////////////////////////////////////////
** Return the number of items in storage.
native Int size()
** Return a list of all keys for this index.
native Str[] keys()
** Return the key value for this index. If the index is greater
** than or equal to 'size' returns null.
native Str? key(Int index)
** Return Obj stored under this key, or null if key does not exist.
@Operator
native Obj? get(Str key)
** Store value under this key.
@Operator
native Void set(Str key, Obj val)
** Remove value for this key. If no value for this key exists,
** this method does nothing.
native Void remove(Str key)
** Remove all items from storage. If store was empty, this
** method does nothing.
native Void clear()
}