public static function format(string $string, array $values, $options = null) : string
    {
        if ($options instanceof Settings) {
            $settings = $options;
        } elseif (is_array($options)) {
            $settings = new Settings($options);
        } else {
            $settings = new Settings();
        }

        $settings->hasRequiredSettings();

        return self::parseString($string, $values, $settings);
    }