Blog::kobaken

prove t/foo/bar/baz.t

Perlの型ライブラリのkuraと組み込みのclassを一緒に利用できるようになりました

metacpan.org

kura meets built-in class!

タイトルの通り、Perlの型ライブラリのkuraと組み込みのclassを一緒に利用できるようになりました。 オブジェクトと型を近くにおけて、便利なんじゃないかと思います。

利用例はこんな感じです。(上の画像と同じ内容です。)

use v5.40;
use experimental 'class';

class Fruit {
    use Exporter 'import';
    use Types::Common -types;

    # kura meets built-in class!
    use kura Name => StrLength[1, 255];

    field $name :param :reader;

    ADJUST {
        Name->assert_valid($name);
    }
}

my $fruit = Fruit->new(name => ''); # Error!

Type::Tinyが提供しているType::Library だとこうはできないので、kuraならではの機能です😁


この記事はPerl Advent Calendar 2024 の3日目の記事です。 昨日は、kobakenさんの「 PerlでResult型を扱うResult::Simpleをリリースしました - Blog::kobaken」でした。

明日は、TBDさんです。

qiita.com