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

Moose::Manual::Types

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 )

, где:

$value

Валидируемое значение.

Обязательный параметр.

Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.

Описание аргументов:

$class

Имя класса типа.

Обязательный параметр.

gen_salvation_tc_type_signer( Str $class )

Генератор валидаторов значений на основе подписанных Salvation::TC::Type.

Возвращает CodeRef, являющийся валидатором, соответствующий следующей сигнатуре:

( Any $value )

, где:

$value

Валидируемое значение.

Обязательный параметр.

Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.

Описание аргументов:

$class

Имя класса типа.

Обязательный параметр.

gen_salvation_tc_type_length_check( Str $class )

Генератор валидаторов значений на основе Salvation::TC::Type, ограниченных под длине.

Возвращает CodeRef, являющийся валидатором, соответствующий следующей сигнатуре:

( Any $value )

, где:

$value

Валидируемое значение.

Обязательный параметр.

Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.

Описание аргументов:

$class

Имя класса типа.

Обязательный параметр.

gen_class_type_validator( Str $class )

Генератор валидаторов значений, являющихся экземпярами классов.

Возвращает CodeRef, являющийся валидатором, соответствующий следующей сигнатуре:

( Any $value )

, где:

$value

Валидируемое значение.

Обязательный параметр.

Если значение не подходит - валидатор бросает исключение Salvation::TC::Exception::WrongType.

Описание аргументов:

$class

Имя класса типа.

Обязательный параметр.

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 )

Возвращает уже созданный класс для класса типа.

Описание аргументов:

$name

Имя типа.

Обязательный параметр.

get_type_parser()

Возвращает имя класса парсера типов.

parse_type( Str $str )

Анализирует строку и возвращает класс описанного в ней класса типа.

Если класс для этого класса типа ещё не был инициализирован - инициализирует его.

Описание аргументов:

$str

Строка, описывающая тип.

Обязательный параметр.

materialize_type( ArrayRef[HashRef] $tokens )

Превращает токены в классы типов.

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