=head1 NAME Attean::API::AtOnceParser - Role for parsers that natively parse all input before returning any data =head1 VERSION This document describes Attean::API::AtOnceParser version 0.033 =head1 DESCRIPTION The Attean::API::AtOnceParser role defines parsers that must parse all input data before any objects are constructed and returned or passed to callback functions. This role adds methods that builds on this functionality to allow parsing data using different approaches. =head1 ROLES This role consumes the L role. =head1 REQUIRED METHODS Classes consuming this role must provide the following methods: =over 4 =item C<< parse_list_from_io( $fh ) >> Returns a list of all objects that result from parsing the data read from the L object C<< $fh >>. =item C<< parse_list_from_bytes( $data ) >> Returns a list of all objects that result from parsing the data read from the UTF-8 encoded byte string C<< $data >>. =back =head1 METHODS This role provides default implementations of the following methods: =over 4 =item C<< parse_iter_from_io( $fh ) >> Returns an L that result from parsing the data read from the L object C<< $fh >>. =item C<< parse_iter_from_bytes( $data ) >> Returns an L that result from parsing the data read from the UTF-8 encoded byte string C<< $data >>. =item C<< parse_cb_from_io( $fh ) >> Calls the C<< $parser->handler >> function once for each object that result from parsing the data read from the L object C<< $fh >>. =item C<< parse_cb_from_bytes( $data ) >> Calls the C<< $parser->handler >> function once for each object that result from parsing the data read from the UTF-8 encoded byte string C<< $data >>. =back =head1 BUGS Please report any bugs or feature requests to through the GitHub web interface at L. =head1 SEE ALSO =head1 AUTHOR Gregory Todd Williams C<< >> =head1 COPYRIGHT Copyright (c) 2014--2022 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut