git subrepo commit (merge) mailcow/src/mailcow-dockerized
subrepo: subdir: "mailcow/src/mailcow-dockerized"
merged: "32243e56"
upstream: origin: "https://github.com/mailcow/mailcow-dockerized.git"
branch: "master"
commit: "e2b4b6f6"
git-subrepo: version: "0.4.3"
origin: "???"
commit: "???"
Change-Id: I51e2016ef5ab88a8b0bdc08551b18f48ceef0aa5
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/twig/twig/src/TwigFilter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/twig/twig/src/TwigFilter.php
new file mode 100644
index 0000000..94e5f9b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/twig/twig/src/TwigFilter.php
@@ -0,0 +1,134 @@
+<?php
+
+/*
+ * This file is part of Twig.
+ *
+ * (c) Fabien Potencier
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Twig;
+
+use Twig\Node\Expression\FilterExpression;
+use Twig\Node\Node;
+
+/**
+ * Represents a template filter.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @see https://twig.symfony.com/doc/templates.html#filters
+ */
+final class TwigFilter
+{
+ private $name;
+ private $callable;
+ private $options;
+ private $arguments = [];
+
+ /**
+ * @param callable|null $callable A callable implementing the filter. If null, you need to overwrite the "node_class" option to customize compilation.
+ */
+ public function __construct(string $name, $callable = null, array $options = [])
+ {
+ $this->name = $name;
+ $this->callable = $callable;
+ $this->options = array_merge([
+ 'needs_environment' => false,
+ 'needs_context' => false,
+ 'is_variadic' => false,
+ 'is_safe' => null,
+ 'is_safe_callback' => null,
+ 'pre_escape' => null,
+ 'preserves_safety' => null,
+ 'node_class' => FilterExpression::class,
+ 'deprecated' => false,
+ 'alternative' => null,
+ ], $options);
+ }
+
+ public function getName(): string
+ {
+ return $this->name;
+ }
+
+ /**
+ * Returns the callable to execute for this filter.
+ *
+ * @return callable|null
+ */
+ public function getCallable()
+ {
+ return $this->callable;
+ }
+
+ public function getNodeClass(): string
+ {
+ return $this->options['node_class'];
+ }
+
+ public function setArguments(array $arguments): void
+ {
+ $this->arguments = $arguments;
+ }
+
+ public function getArguments(): array
+ {
+ return $this->arguments;
+ }
+
+ public function needsEnvironment(): bool
+ {
+ return $this->options['needs_environment'];
+ }
+
+ public function needsContext(): bool
+ {
+ return $this->options['needs_context'];
+ }
+
+ public function getSafe(Node $filterArgs): ?array
+ {
+ if (null !== $this->options['is_safe']) {
+ return $this->options['is_safe'];
+ }
+
+ if (null !== $this->options['is_safe_callback']) {
+ return $this->options['is_safe_callback']($filterArgs);
+ }
+
+ return null;
+ }
+
+ public function getPreservesSafety(): ?array
+ {
+ return $this->options['preserves_safety'];
+ }
+
+ public function getPreEscape(): ?string
+ {
+ return $this->options['pre_escape'];
+ }
+
+ public function isVariadic(): bool
+ {
+ return $this->options['is_variadic'];
+ }
+
+ public function isDeprecated(): bool
+ {
+ return (bool) $this->options['deprecated'];
+ }
+
+ public function getDeprecatedVersion(): string
+ {
+ return \is_bool($this->options['deprecated']) ? '' : $this->options['deprecated'];
+ }
+
+ public function getAlternative(): ?string
+ {
+ return $this->options['alternative'];
+ }
+}