Adapter-Async
view release on metacpan or search on metacpan
lib/Adapter/Async/UnorderedMap/Hash.pm view on Meta::CPAN
package Adapter::Async::UnorderedMap::Hash;
$Adapter::Async::UnorderedMap::Hash::VERSION = '0.019';
use strict;
use warnings;
use parent qw(Adapter::Async::UnorderedMap);
=head1 NAME
Adapter::Async::UnorderedMap::Hash - hashref adapter
=head1 VERSION
version 0.018
=head1 DESCRIPTION
See L<Adapter::Async::UnorderedMap> for the API.
=cut
sub new {
my $self = shift->SUPER::new(@_);
$self->{data} ||= { };
$self
}
sub clear {
my $self = shift;
%{$self->{data}} = ();
$self->bus->invoke_event('clear');
Future->wrap
}
sub exists {
my ($self, $k) = @_;
Future->done(
exists($self->{data}{$k}) ? 1 : 0
)
}
sub set_key {
my ($self, $k, $v) = @_;
$self->{data}{$k} = $v;
$self->bus->invoke_event(set_key => $k, $v);
Future->done($k)
}
sub get_key {
my ($self, $k, $v) = @_;
Future->fail('key does not exist') unless exists $self->{data}{$k};
Future->done($self->{data}{$k})
}
sub each : method {
my ($self, $code) = @_;
for my $k (keys %{ $self->{data} }) {
$code->($k, $self->{data}{$k})
}
Future->done;
}
sub keys : method {
my ($self) = @_;
Future->done([
keys %{ $self->{data} }
( run in 0.514 second using v1.01-cache-2.11-cpan-39bf76dae61 )