for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Livia
* Copyright 2017-2019 Charlotte Dunois, All Rights Reserved
*
* Website: https://charuru.moe
* License: https://github.com/CharlotteDunois/Livia/blob/master/LICENSE
*/
namespace CharlotteDunois\Livia\Types;
* {@inheritdoc}
* @internal
class StringArgumentType extends ArgumentType {
function __construct(\CharlotteDunois\Livia\Client $client) {
parent::__construct($client, 'string');
}
* @return bool|string|\React\Promise\ExtendedPromiseInterface
function validate(string $value, \CharlotteDunois\Livia\Commands\Context $context, ?\CharlotteDunois\Livia\Arguments\Argument $arg = null) {
if(\mb_strlen($value) === 0) {
return false;
if($arg->min !== null && \mb_strlen($value) < $arg->min) {
return 'Please enter something above or exactly '.$arg->min.' characters in length.';
if($arg->max !== null && \mb_strlen($value) > $arg->max) {
return 'Please enter a number below or exactly '.$arg->max.' characters in length.';
return true;
* @return mixed|null|\React\Promise\ExtendedPromiseInterface
function parse(string $value, \CharlotteDunois\Livia\Commands\Context $context, ?\CharlotteDunois\Livia\Arguments\Argument $arg = null) {
return $value;