NAME
Salvation::TC - Type Constraint, система проверки типов значений.
SYNOPSIS
Salvation::TC -> is( 'asd', 'Str' );
Salvation::TC -> is( 123, 'Int' );
Salvation::TC -> is( 123.45, 'Num' );
Salvation::TC -> is( [], 'ArrayRef' );
Salvation::TC -> is( [ 1, 2, "asd" ], 'ArrayRef[Int|Str]' );
Salvation::TC -> assert( [ { a => undef, b => 1 } ], 'ArrayRef[HashRef[Maybe[Int]]]' );
Salvation::TC -> assert( DBScheme::Image -> search_one([]), 'DBScheme' );
Salvation::TC -> assert( { asd => 1 }, 'HashRef(Int :asd!, ArrayRef[Int] :list)' ); # OK
Salvation::TC -> assert( { asd => 1, list => [ 2 ] }, 'HashRef(Int :asd!, ArrayRef[Int] :list)' ); # OK
Salvation::TC -> assert( { qwe => 1 }, 'HashRef(Int :asd!, ArrayRef[Int] :list)' ); # FAIL
Salvation::TC -> assert( [ { asd => [], qwe => 1 } ], 'ArrayRef[HashRef(Int :qwe!)](HashRef(ArrayRef :asd!) el)' ); # OK
SEE ALSO
http://perlcabal.org/syn/S06.html#Signatures
METHODS
init_regular_cases()
Инициализирует и кэширует самые частые кейсы.
get_known_types()
Возвращает таблицу известных базовых валидаторов и генератором для них.
gen_salvation_tc_type_validator( Str $class )
Генератор валидаторов значений на основе Salvation::TC::Type.
Возвращает CodeRef, являющийся валидатором, соответствующий следующей сигнатуре:
( Any $value )
, где:
Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.
Описание аргументов:
gen_salvation_tc_type_signer( Str $class )
Генератор валидаторов значений на основе подписанных Salvation::TC::Type.
Возвращает CodeRef, являющийся валидатором, соответствующий следующей сигнатуре:
( Any $value )
, где:
Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.
Описание аргументов:
gen_salvation_tc_type_length_check( Str $class )
Генератор валидаторов значений на основе Salvation::TC::Type, ограниченных под длине.
Возвращает CodeRef, являющийся валидатором, соответствующий следующей сигнатуре:
( Any $value )
, где:
Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.
Описание аргументов:
gen_class_type_validator( Str $class )
Генератор валидаторов значений, являющихся экземпярами классов.
Возвращает CodeRef, являющийся валидатором, соответствующий следующей сигнатуре:
( Any $value )
, где:
Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.
Описание аргументов:
setup_type( Str $name, @rest )
Инициализирует класс для класса типа.
Описание аргументов:
- $name
-
Имя типа.
Обязательный параметр.
- @rest
-
Иные, сопутствующие типу параметры (пары ключ-значение). Основные параметры типа:
- validator
-
CodeRef, функция-валидатор.
simple_type_class_name()
setup_maybe_type( Str $name, @rest )
maybe_type_class_name()
setup_union_type( Str $name, @rest )
union_type_class_name()
setup_parameterized_type( Str $name, Str $class, @rest )
get_type( Str $name )
Возвращает уже созданный класс для класса типа.
Описание аргументов:
get_type_parser()
Возвращает имя класса парсера типов.
parse_type( Str $str )
Анализирует строку и возвращает класс описанного в ней класса типа.
Если класс для этого класса типа ещё не был инициализирован - инициализирует его.
Описание аргументов:
materialize_type( HashRef( HashRef :opts!, ArrayRef[HashRef] :data! ) input )
Превращает токены �� классы типов.
simple_type_class_ns()
get_or_create_simple_type( Str $str )
Возвращает базовый тип с именем $str
.
get( Str $constraint )
Возвращает объект для типа $constraint
.
is( Any $value, Str $constraint )
Проверяет, является ли $value
значением типа $constraint
.
Возвращает true
в случае, если является, иначе - возвращает false
.
assert( Any $value, Str $constraint )
Проверяет, является ли $value
значением типа $constraint
.
Возвращает true
в случае, если является, иначе - вызывает die
.
create_error_message( Salvation::TC::Exception::WrongType $e )
coerce( Any $value, Str $constraint )
Пытается привести значение $value
к значению типа $constraint
.
Если приведение прошло успешно - возвращает изменённое значение, иначе - возвращает $value
без изменения*.
* Для совместимости с API Moose.
ensure( Any $value, Str $constraint )
Пытается привести значение $value
к значению типа $constraint
.
Если приведение прошло успешно - возвращает изменённое значение, иначе - вызывает die
.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 5:
Non-ASCII character seen before =encoding in 'система'. Assuming UTF-8