package MooseX::Meta::Signature;

use Moose;

use Carp qw/confess/;
use Sub::Exporter;
use Sub::Name qw/subname/;

our $VERSION = 0.01;

sub validate_arguments { confess "Implementation missing" }

sub import {
    my ($class,$name) = @_;

    return unless scalar @_ > 1;

    my $exporter = Sub::Exporter::build_exporter ({
        exports => {
          $name => sub { return subname "$class\::$name", sub { $class->new (@_) } },
        },
        groups => {
          default => [':all'],
        },
      });

    goto $exporter;
}

1;

