package SPVM::Scope::Guard; 1; =head1 Name SPVM::Scope::Guard - Executing Callback at End of Scope =head1 Usage use Scope::Guard; # Executing the callback at the end of the scope { Scope::Guard->new(method : void () { print "End of Scope\n"; }); print "Foo"; } # With field definitions { my $value = 1; Scope::Guard->new([$value : int] method : void () { print "$value\n"; }); print "Foo"; } =head1 Description The Scope::Guard class has the methods to execute a callback at the end of the scope. =head1 Fields =head2 callback C<has callback : ro L<Callback|SPVM::Callback>;> A callback called at the end of the scope. =head1 Class Methods =head2 new C<static method new : L<Scope::Guard|SPVM::Scope::Guard> ($callback : L<Callback|SPVM::Callback>);> Creates a new C<Scope::Guard> object and returns it. $callback is set to L</"callback"> field. Exceptions: $callback must be defined. Otherwise an exception is thrown. =head1 Instance Methods =head2 DESTROY C<method DESTROY : void ();> Executes the L</"callback">. =head1 See Also =head2 Scope::Guard C<SPVM::Scope::Guard> is a port of Perl's L<Scope::Guard> to L<SPVM>. =head1 Copyright & License Copyright (c) 2023 Yuki Kimoto MIT License