logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

AnyEvent::Serialize - async serialize/deserialize function

Author

       Dmitry E. Oboukhov, <unera@debian.org>

Breaking

       You can break serialization/deserialization process if You save  value  that  is  returned  by  functions
       serialize/deserialize. They return guards if they are called in non-void context.

Description

       Sometimes You need to serialize/deserialize a lot of data. If You do it using Data::Dumper or eval it can
       take You too much time.  This module splits (de)serialization process into fixed-size parts and does this
       work in non-blocking mode.

       This module uses Data::StreamSerializer and Data::StreamDeserializer to serialize or deserialize Your
       data.

Export

serialize($object,$result_callback)
       Serializes Your object. When serialization is done it will call $result_callback. This callback receives
       two arguments:

       result string
       flag if recursion is detected

   deserialize($str,$result_callback)
       Deserializes  Your  string.  When  deserialization  is  done  or  an  error  is  detected  it  will  call
       $result_callback. This callback receives three arguments:

       deserialized object
       error string (if an error was occured)
       undeserialized string tail

Name

       AnyEvent::Serialize - async serialize/deserialize function

See Also

       Data::StreamSerializer, Data::StreamDeserializer.

Synopsis

         use AnyEvent::Serialize ':all';
         use AnyEvent::Serialize 'serialize';
         use AnyEvent::Serialize 'deserialize';
         use AnyEvent::Serialize ... block_size => 666;

         serialize $object, sub { ($str, $recursion_detected) = @_ };
         deserialize $string, sub { my ($object, $error, $tail) = @_ }

See Also