| lib/List/Objects/WithUtils/Role/Array/TiedRO.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| statement | 9 | 9 | 100.0 |
| branch | n/a | ||
| condition | n/a | ||
| subroutine | 3 | 3 | 100.0 |
| total | 12 | 12 | 100.0 |
| line | stmt | bran | cond | sub | code |
|---|---|---|---|---|---|
| 1 | package List::Objects::WithUtils::Role::Array::TiedRO; | ||||
| 2 | 3 | 3 | use strictures 1; | ||
| 3 | |||||
| 3 | |||||
| 3 | 3 | 3 | use Carp (); | ||
| 3 | |||||
| 3 | |||||
| 4 | |||||
| 5 | # This role can be applied to the objects backing tied arrays | ||||
| 6 | # after construction time in order to swap a mutable tied array | ||||
| 7 | # for an immutable implementation; | ||||
| 8 | # Array::Immutable::Typed::immarray_of does this in order to retain | ||||
| 9 | # normal tied type array behavior until construction is complete. | ||||
| 10 | |||||
| 11 | 3 | 3 | use Role::Tiny; | ||
| 3 | |||||
| 3 | |||||
| 12 | |||||
| 13 | around $_ => sub { | ||||
| 14 | Carp::croak "Attempted to modify a read-only value" | ||||
| 15 | } for qw/ | ||||
| 16 | STORE | ||||
| 17 | STORESIZE | ||||
| 18 | CLEAR | ||||
| 19 | PUSH | ||||
| 20 | POP | ||||
| 21 | SHIFT | ||||
| 22 | SPLICE | ||||
| 23 | UNSHIFT | ||||
| 24 | EXTEND | ||||
| 25 | /; | ||||
| 26 | |||||
| 27 | 1; | ||||
| 28 |