alias sass:map
builtin functions
This commit is contained in:
parent
21e096247e
commit
ca4c5da73e
@ -8,7 +8,7 @@ use crate::{
|
||||
value::{SassMap, Value},
|
||||
};
|
||||
|
||||
fn map_get(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
pub(crate) fn map_get(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
args.max_args(2)?;
|
||||
let key = args.get_err(1, "key")?;
|
||||
let map = match args.get_err(0, "map")? {
|
||||
@ -26,7 +26,7 @@ fn map_get(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
Ok(map.get(&key)?.unwrap_or(Value::Null))
|
||||
}
|
||||
|
||||
fn map_has_key(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
pub(crate) fn map_has_key(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
args.max_args(2)?;
|
||||
let key = args.get_err(1, "key")?;
|
||||
let map = match args.get_err(0, "map")? {
|
||||
@ -44,7 +44,7 @@ fn map_has_key(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value>
|
||||
Ok(Value::bool(map.get(&key)?.is_some()))
|
||||
}
|
||||
|
||||
fn map_keys(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
pub(crate) fn map_keys(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
args.max_args(1)?;
|
||||
let map = match args.get_err(0, "map")? {
|
||||
Value::Map(m) => m,
|
||||
@ -65,7 +65,7 @@ fn map_keys(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
))
|
||||
}
|
||||
|
||||
fn map_values(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
pub(crate) fn map_values(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
args.max_args(1)?;
|
||||
let map = match args.get_err(0, "map")? {
|
||||
Value::Map(m) => m,
|
||||
@ -86,7 +86,7 @@ fn map_values(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value>
|
||||
))
|
||||
}
|
||||
|
||||
fn map_merge(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
pub(crate) fn map_merge(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
args.max_args(2)?;
|
||||
let mut map1 = match args.get_err(0, "map1")? {
|
||||
Value::Map(m) => m,
|
||||
@ -116,7 +116,7 @@ fn map_merge(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
Ok(Value::Map(map1))
|
||||
}
|
||||
|
||||
fn map_remove(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
pub(crate) fn map_remove(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult<Value> {
|
||||
let mut map = match args.get_err(0, "map")? {
|
||||
Value::Map(m) => m,
|
||||
Value::List(v, ..) if v.is_empty() => SassMap::new(),
|
||||
|
@ -1,4 +1,4 @@
|
||||
mod functions;
|
||||
pub(crate) mod modules;
|
||||
|
||||
pub(crate) use functions::{list, math, meta, selector, Builtin, GLOBAL_FUNCTIONS};
|
||||
pub(crate) use functions::{list, map, math, meta, selector, Builtin, GLOBAL_FUNCTIONS};
|
||||
|
@ -1,5 +1,19 @@
|
||||
use crate::{
|
||||
args::CallArgs, builtin::modules::Module, error::SassResult, parse::Parser, value::Value,
|
||||
args::CallArgs,
|
||||
builtin::{
|
||||
map::{map_get, map_has_key, map_keys, map_merge, map_remove, map_values},
|
||||
modules::Module,
|
||||
},
|
||||
error::SassResult,
|
||||
parse::Parser,
|
||||
value::Value,
|
||||
};
|
||||
|
||||
pub(crate) fn declare(_f: &mut Module) {}
|
||||
pub(crate) fn declare(f: &mut Module) {
|
||||
f.insert_builtin("get", map_get);
|
||||
f.insert_builtin("has-key", map_has_key);
|
||||
f.insert_builtin("keys", map_keys);
|
||||
f.insert_builtin("merge", map_merge);
|
||||
f.insert_builtin("remove", map_remove);
|
||||
f.insert_builtin("values", map_values);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user