イテレータをさまざまな出力形式にシリアル化するMooseクラスを使用します。私たちは、属性として、イテレータを説明します。ムーゼ型制約付きの祝福されたCodeRefの使用
has iterator => (
is => 'ro',
isa => 'CodeRef',
required => 1,
);
これは、これまでうまく働いたが、我々は最近、後の消費のためのイテレータを準備するためにIterator::Simpleを使用してきました。
has iterator => (
is => 'ro',
isa => 'CodeRef|Iterator::Simple::Iterator',
required => 1,
);
そして、我々のシリアライザが正しくイテレータクラスを受け入れることができ:これは私たちがこれを書いて行くことができます。しかし、それは不完全な解決策であるようです。
属性が呼び出し可能でなければならないという制約を指定する方法がありますか?私は可能性がありますMoose::Util::TypeConstraintsと可能性がありますoverload::Overloadedの上に&{}
を使用してチェックするが、私は誰もがこれを行うためのモジュールを作成したかどうか、またはこれをテストするためのムース標準的な方法があるかどうかを知りたい。