code: public function filter(OptionsInterface $options, $value)
      {
          if (is_callable($value)) {
              $value = call_user_func($value, $options);
          }
  
          if (is_string($value)) {
              return $this->getHashGeneratorByDescription($options, $value);
          } elseif ($value instanceof Hash\HashGeneratorInterface) {
              return $value;
          } else {
              $class = get_class($this);
              throw new \InvalidArgumentException("$class expects a valid hash generator");
          }
      }
docs: {@inheritdoc}