// Functions.@use'map.get.function'as *;@use'map.pick.function'as *;// Status: TODO: Handle `null` in pick function with map.values.// The `map.retrieve()` function retrieves a value from `$map` by a `$method` get or pick with a `$key`.// @param `$method` The method get(`map.get()`) or pick(`map.pick()`) used to retrieve the value.// @param `$map` A map to get the value by using `$method` and `$key`.// @param `$key` A key to get or pick the value from `$map`.// @param `$fallback` The fallback value if returned is `null`.// @return The return value is a retrieved value from `$map` or `$fallback`.@functionretrieve($method, $map, $key, $fallback: null) {@returnif( $method == get,get($map, $key, $fallback),if($method == pick,pick($map, $key...), $map or $fallback) );}// Examples.// $-dictionary-example: (// general: (word: sÅowo, (wrapper, wrap): owijka, (technology, technologia): tech, color: c),// class: (prefix: class-prefix, separator: class-separator, suffix: class-suffix, calendars: (calendar: cal), labels: (label: lab)),
// prefix: spectre,// border: b,// color: c,// separator: '-',// suffix: end,// outline: o,// var: (prefix: var-prefix, suffix: var-suffix)// );// @debug retrieve(get, $-dictionary-example, general); // (word: sÅowo, (wrapper, wrap): owijka, (technology, technologia): tech, color: c)
// @debug retrieve(pick, $-dictionary-example, ((class, calendars),)); // (calendars: (calendar: cal))// @debug retrieve(pick, $-dictionary-example, (general, (class, calendars))); // (general: (word: sÅowo, (wrapper, wrap): owijka, (technology, technologia): tech, color: c), calendars: (calendar: cal))
// input list// @debug retrieve(pick $-dictionary-example ((class, calendars),)...); // (calendars: (calendar: cal))// null// @debug retrieve(get, $-dictionary-example, test); // null// @debug retrieve(pick, $-dictionary-example, test); // (test: null)