The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Types::ULID - ULID type constraints

SYNOPSIS

        use Types::ULID qw(ULID BinaryULID);

        # coercion from undef will generate new ulid
        has 'id' => (
                is => 'ro',
                isa => ULID,
                coerce => 1,
                default => sub { undef },
        );

DESCRIPTION

Types::ULID is Type::Tiny type for Data::ULID. See https://github.com/ulid/spec for ulid specification.

Types

ULID

Type for text (base32-encoded) ulid. Can be coerced from undef - generates a new ulid.

BinaryULID

Type for binary ulid. Can be coerced from undef - generates a new ulid.

TODO: this does not currently check whether string contains multibyte characters.

ULID implementation

Coercions provided by this module will use Data::ULID::XS to generate new ULIDs if it is available.

Following functions are compiled into the module from the ULID implementation it found:

Types::ULID::ulid

Types::ULID::binary_ulid

Additionally, a constant can be queried for the current backend:

Types::ULID::ULID_BACKEND

these functions require Types::ULID version 0.004

SEE ALSO

Data::ULID

Data::ULID::XS

Type::Tiny

AUTHOR

Bartosz Jarzyna <bbrtj.pro@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2022 by Bartosz Jarzyna

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.