///
/// Fetch value from map
///
/// @access private
///
/// @param {Map}     $map  - map to fetch value from
/// @param {ArgList} $keys - list of keys to traverse
///
/// @return {*}
///
/// @group Internal Functions
///
@function flint-map-fetch($map, $keys...) {

	// Use Ruby function if available
	@if $flint-use-ruby-functions {
		@return flint_ruby_map_fetch($map, $keys...);
	}
	
	$result: $map;

	@each $key in $keys {
		@if $result {
			$result: flint-is-map($result) and map-has-key($result, $key) and map-get($result, $key) or false;
		} @else {
			@return false;
		}
	}

	@return $result;
}
