SYNOPSIS
mapping mkmapping(mixed *arr1, mixed *arr2,...)
mapping mkmapping(struct st)
DESCRIPTION
The first form returns a mapping with indices from 'arr1' and
values from 'arr2'... . arr1[0] will index arr2...[0], arr1[1]
will index arr2...[1], etc. If the arrays are of unequal size,
the mapping will only contain as much elements as are in the
smallest array.
The second form converts the given struct <st> into a mapping
using the struct member names as index values.
Normally, mappings are extended by simply inserting new elements.
This function is useful if you can estimate the needed size of
the mapping in advance, to reduce the malloc overhead. Any
unused allocated space will be freed after the current function
returns.
EXAMPLE
mkmapping( ({ 1, 2 }), ({ 10, 11 }), ({ 20, 21, 22}))
returns ([ 1:10;20, 2:11;21 ])
struct s { int a, b, c; };
mkmapping( (<s> 1, ({ 2, 3 }), 3 )
returns ([ "a":1, "b":({2,3}), "c":3 ])
HISTORY
LDMud 3.3.433 added the conversion from structs.
SEE ALSO
mappings(LPC), mappingp(E), m_indices(E), m_values(E),
m_add(E), m_delete(E), sizeof(E), widthof(E), unmkmapping(E),
to_struct(E)