Help language development. Donate to The Perl Foundation

annotations zef:Kaiepi last updated on 2022-08-26

lsb.raku
use v6.e.PREVIEW;
use annotations <declare direct class>;

annotation Lazy::Static::Buffer is repr<Uninstantiable> {
    method enqueue(::?CLASS: +values) { $?CLASS graffiti values }

    method CALL-ME(::?CLASS: +offsets) { ANN[$?CLASS][offsets] }
}

my @splits := Lazy::Static::Buffer.enqueue: 1...*;
my @intact := Lazy::Static::Buffer.enqueue: 6..10;
put @splits[0..3];
put @intact[*];
put @splits[4];
put Lazy::Static::Buffer(*);