=head1 NAME
XS::Framework::Manual::SVAPI::Scope - XS::Framework scope utils
=head1 Scope::Hints - compiler scope hints
=head2 Overview
This class contains static methods for setting scope hints at compile time and getting it in runtime.
Example:
use MyModule::strict_mode; # MyModule::strict_mode::import() XS function calls Scope::Hints::set
...
MyModule::somefunc($arg); # XS function may use Scope::Hints::get to alter its behaviour
...
no MyModule::strict_mode; # MyModule::strict_mode::unimport() XS function calls Scope::Hints::remove
=head2 void set (string_view name, const Sv& value)
Set hint C<name> with value C<value>. Must be called at compile time to take effect,
i.e. from XS C<import()> function or from XS function that is called from C<BEGIN> block.
Scope::Hints::set("myhint", Simple("myvalue"));
Have the same effect as calling from perl
BEGIN { $^H{myhint} = "myvalue" }
=head2 void remove (string_view name)
Removes hint C<name> and its associated value. Must be called at compile time to take effect (usually from C<unimport()>).
=head2 bool exists (string_view name)
Returns true if hint C<name> exists in current scope. Must be called at runtime.
=head2 Scalar get (string_view name)
Returns value associated with hint C<name> or empty scalar if no such hint in scope. Must be called at runtime.
=head2 Hash get ()
Returns all hints and their values in scope as hashref. Must be called at runtime.
=head2 Scalar get_ct (string_view name)
Compile-time version of C<get(name)>.
Returns value associated with hint C<name> or empty scalar if no such hint enabled. Must be called at compile time.
Have the same effect as calling from perl
BEGIN { my $val = $^H{myhint}; }
=head1 SEE ALSO
L<XS::Framework>
L<XS::Framework::Manual::SVAPI>
=cut