diff options
Diffstat (limited to 'vendor/scssphp/scssphp/src/Ast/Sass/Expression/MapExpression.php')
-rw-r--r-- | vendor/scssphp/scssphp/src/Ast/Sass/Expression/MapExpression.php | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/scssphp/scssphp/src/Ast/Sass/Expression/MapExpression.php b/vendor/scssphp/scssphp/src/Ast/Sass/Expression/MapExpression.php new file mode 100644 index 000000000..acd66a26f --- /dev/null +++ b/vendor/scssphp/scssphp/src/Ast/Sass/Expression/MapExpression.php @@ -0,0 +1,64 @@ +<?php + +/** + * SCSSPHP + * + * @copyright 2012-2020 Leaf Corcoran + * + * @license http://opensource.org/licenses/MIT MIT + * + * @link http://scssphp.github.io/scssphp + */ + +namespace ScssPhp\ScssPhp\Ast\Sass\Expression; + +use ScssPhp\ScssPhp\Ast\Sass\Expression; +use ScssPhp\ScssPhp\Visitor\ExpressionVisitor; +use SourceSpan\FileSpan; + +/** + * A map literal. + * + * @internal + */ +final class MapExpression implements Expression +{ + /** + * @var list<array{Expression, Expression}> + */ + private readonly array $pairs; + + private readonly FileSpan $span; + + /** + * @param list<array{Expression, Expression}> $pairs + */ + public function __construct(array $pairs, FileSpan $span) + { + $this->pairs = $pairs; + $this->span = $span; + } + + /** + * @return list<array{Expression, Expression}> + */ + public function getPairs(): array + { + return $this->pairs; + } + + public function getSpan(): FileSpan + { + return $this->span; + } + + public function accept(ExpressionVisitor $visitor) + { + return $visitor->visitMapExpression($this); + } + + public function __toString(): string + { + return '(' . implode(', ', array_map(fn($pair) => $pair[0] . ': ' . $pair[1], $this->pairs)) . ')'; + } +} |