# Copyright (c) 2023 Yuki Kimoto
# MIT License
class Scope::Guard {
version_from SPVM;
use Callback;
has callback : ro Callback;
static method new : Scope::Guard ($callback : Callback) {
unless ($callback) {
die "The callback \$callback must be defined.";
}
my $self = new Scope::Guard;
$self->{callback} = $callback;
return $self;
}
method DESTROY : void () {
$self->{callback}->();
}
}