---
name: "Attean::API::Serializer"
section: "3pm"
platform: "linux"
package: "libattean-perl"
version: "0.035-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Attean::API::Serializer"
---

# Attean::API::Serializer(3pm)

Serializer role

## NAME

Attean::API::Serializer - Serializer role

## VERSION

This document describes Attean::API::Serializer version 0.035

## DESCRIPTION

The Attean::API::Serializer role defines a common API for all serializers of typed objects to data (either a byte string or printed to a filehandle).

## REQUIRED METHODS

The following methods are required by the Attean::API::Serializer role:

- "canonical\_media\_type"

  Returns the canonical media type string for the format of this serializer.

- "media\_types"

  Returns an ARRAY reference of media type strings that also identify the format produced by this serializer.

- "handled\_type"

  Returns a Type::Tiny object representing the type of items that are consumed during serialization.

- "file\_extensions"

  Returns an ARRAY reference of file extensions commonly associated with the media types supported by the serializer (and returned by `"media_types"`). File extensions should NOT include a leading dot.

- "serialize\_iter\_to\_io( $fh, $iterator )"

  Serializes the elements from the Attean::API::Iterator `$iterator` to the IO::Handle object `$fh`.

- serialize\_iter\_to\_bytes( $fh )

  Serializes the elements from the Attean::API::Iterator `$iterator` and returns the serialization as a UTF-8 encoded byte string.

## METHODS

This role provides default implementations of the following methods:

- "serialize\_list\_to\_io( $fh, @elements )"

  Serializes the objects in `@elements` to the IO::Handle object `$fh`.

- serialize\_list\_to\_bytes( @elements )

  Serializes the objects in `@elements` and returns the serialization as a UTF-8 encoded byte string.

## BUGS

Please report any bugs or feature requests to through the GitHub web interface at \<https://github.com/kasei/attean/issues\>.

## SEE ALSO

## AUTHOR

Gregory Todd Williams  `"<gwilliams@cpan.org>"`

## 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.
