1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
package Log::Dispatch::Types;
use strict;
use warnings;
use namespace::autoclean;
our $VERSION = '2.71';
use parent 'Specio::Exporter';
use Log::Dispatch::Vars qw( %CanonicalLevelNames );
use Specio 0.32;
use Specio::Declare;
use Specio::Library::Builtins -reexport;
use Specio::Library::Numeric -reexport;
use Specio::Library::String -reexport;
any_can_type(
'ApacheLog',
methods => ['log'],
);
declare(
'ArrayOfAddresses',
parent => t( 'ArrayRef', of => t('NonEmptySimpleStr') ),
);
coerce(
t('ArrayOfAddresses'),
from => t('NonEmptySimpleStr'),
inline => sub {"[ $_[1] ]"},
);
declare(
'Callbacks',
parent => t( 'ArrayRef', of => t('CodeRef') ),
);
coerce(
t('Callbacks'),
from => t('CodeRef'),
inline => sub {"[ $_[1] ]"},
);
any_can_type(
'CanPrint',
methods => ['print'],
);
{
my $level_names_re = join '|', keys %CanonicalLevelNames;
declare(
'LogLevel',
parent => t('Value'),
inline => sub {
sprintf( <<'EOF', $_[1], $level_names_re );
%s =~ /\A(?:[0-7]|%s)\z/
EOF
},
);
}
declare(
'SyslogSocket',
parent => t(
'Maybe',
of => union( of => [ t('NonEmptyStr'), t('ArrayRef'), t('HashRef') ] )
),
);
1;
# ABSTRACT: Types used for parameter checking in Log::Dispatch
__END__
=pod
=encoding UTF-8
=head1 NAME
Log::Dispatch::Types - Types used for parameter checking in Log::Dispatch
=head1 VERSION
version 2.71
=head1 DESCRIPTION
This module has no user-facing parts.
=for Pod::Coverage .*
=head1 SUPPORT
Bugs may be submitted at L<https://github.com/houseabsolute/Log-Dispatch/issues>.
=head1 SOURCE
The source code repository for Log-Dispatch can be found at L<https://github.com/houseabsolute/Log-Dispatch>.
=head1 AUTHOR
Dave Rolsky <autarch@urth.org>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2023 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
The full text of the license can be found in the
F<LICENSE> file included with this distribution.
=cut
|