Skip to main content
Log in

Mojo struct

OwnedKwargsDict

struct OwnedKwargsDict[V: Copyable & Movable]

Container used to pass owned variadic keyword arguments to functions.

This type mimics the interface of a dictionary with String keys, and should be usable more-or-less like a dictionary. Notably, however, this type should not be instantiated directly by users.

Parameters

  • V (Copyable & Movable): The value type of the dictionary. Currently must be Copyable & Movable.

Implemented traits

AnyType, Copyable, ExplicitlyCopyable, Movable, Sized, UnknownDestructibility

Aliases

key_type

alias key_type = String

Methods

__init__

__init__(out self)

Initialize an empty keyword dictionary.

__copyinit__

__copyinit__(out self, existing: Self)

Copy an existing keyword dictionary.

Args:

  • existing (Self): The existing keyword dictionary.

__moveinit__

__moveinit__(out self, owned existing: Self)

Move data of an existing keyword dictionary into a new one.

Args:

  • existing (Self): The existing keyword dictionary.

__getitem__

__getitem__(self, key: String) -> V

Retrieve a value out of the keyword dictionary.

Args:

  • key (String): The key to retrieve.

Returns:

The value associated with the key, if it's present.

Raises:

"KeyError" if the key isn't present.

__setitem__

__setitem__(mut self, key: String, value: V)

Set a value in the keyword dictionary by key.

Args:

  • key (String): The key to associate with the specified value.
  • value (V): The data to store in the dictionary.

__contains__

__contains__(self, key: String) -> Bool

Check if a given key is in the keyword dictionary or not.

Args:

  • key (String): The key to check.

Returns:

True if there key exists in the keyword dictionary, False otherwise.

copy

copy(self) -> Self

Copy an existing keyword dictionary.

Returns:

A copy of the value.

__len__

__len__(self) -> Int

The number of elements currently stored in the keyword dictionary.

Returns:

The number of elements currently stored in the keyword dictionary.

find

find(self, key: String) -> Optional[V]

Find a value in the keyword dictionary by key.

Args:

  • key (String): The key to search for in the dictionary.

Returns:

An optional value containing a copy of the value if it was present, otherwise an empty Optional.

pop

pop(mut self, key: String, owned default: V) -> V

Remove a value from the dictionary by key.

Args:

  • key (String): The key to remove from the dictionary.
  • default (V): A default value to return if the key was not found instead of raising.

Returns:

The value associated with the key, if it was in the dictionary. If it wasn't, return the provided default value instead.

pop(mut self, key: String) -> V

Remove a value from the dictionary by key.

Args:

  • key (String): The key to remove from the dictionary.

Returns:

The value associated with the key, if it was in the dictionary. Raises otherwise.

Raises:

"KeyError" if the key was not present in the dictionary.

__iter__

__iter__(ref self) -> _DictKeyIter[String, V, self_is_origin._dict]

Iterate over the keyword dict's keys as immutable references.

Returns:

An iterator of immutable references to the dictionary keys.

keys

keys(ref self) -> _DictKeyIter[String, V, self_is_origin._dict]

Iterate over the keyword dict's keys as immutable references.

Returns:

An iterator of immutable references to the dictionary keys.

values

values(ref self) -> _DictValueIter[String, V, self_is_origin._dict]

Iterate over the keyword dict's values as references.

Returns:

An iterator of references to the dictionary values.

items

items(ref self) -> _DictEntryIter[String, V, self_is_origin._dict]

Iterate over the keyword dictionary's entries as immutable references.

Examples:

var my_dict = Dict[String, Int]()
my_dict["a"] = 1
my_dict["b"] = 2

for e in my_dict.items():
print(e[].key, e[].value)
var my_dict = Dict[String, Int]()
my_dict["a"] = 1
my_dict["b"] = 2

for e in my_dict.items():
print(e[].key, e[].value)

Notes: These can't yet be unpacked like Python dict items, but you can access the key and value as attributes.

Returns:

An iterator of immutable references to the dictionary entries.