Port ::Replicated from Moose to Moo+Type::Tiny
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / Replicated / Types.pm
CommitLineData
dcdf7b2c 1package # hide from PAUSE
2 DBIx::Class::Storage::DBI::Replicated::Types;
3
998373c2 4# DBIx::Class::Storage::DBI::Replicated::Types - Types used internally by
5# L<DBIx::Class::Storage::DBI::Replicated>
9901aad7 6
5292b35a 7use warnings;
8use strict;
9
1e1cc55e 10use Type::Library
11 -base,
12 -declare => qw/BalancerClassNamePart Weight DBICSchema DBICStorageDBI/;
13use Type::Utils -all;
14use Types::Standard qw/Str Num/;
15use Types::LoadableClass qw/LoadableClass/;
9901aad7 16
1e1cc55e 17class_type DBICSchema, { class => 'DBIx::Class::Schema' };
18class_type DBICStorageDBI, { class => 'DBIx::Class::Storage::DBI' };
6a151f58 19
9901aad7 20subtype BalancerClassNamePart,
d401ab6b 21 as LoadableClass;
998373c2 22
9901aad7 23coerce BalancerClassNamePart,
24 from Str,
25 via {
26 my $type = $_;
d401ab6b 27 $type =~ s/\A::/DBIx::Class::Storage::DBI::Replicated::Balancer::/;
998373c2 28 $type;
9901aad7 29 };
30
ee356d00 31subtype Weight,
32 as Num,
b88b85e7 33 where { $_ >= 0 },
34 message { 'weight must be a decimal greater than 0' };
ee356d00 35
9901aad7 361;