NAME

Toolforge::MixNMatch::Struct::YearMonth - Mix'n'match year/month structure serialization.

SYNOPSIS

use Toolforge::MixNMatch::Struct::YearMonth qw(obj2struct struct2obj);

my $struct_hr = obj2struct($obj);
my $obj = struct2obj($struct_hr);

DESCRIPTION

This conversion is between object defined in Toolforge::MixNMatch::Object::YearMonth and structure serialized via JSON to Mix'n'match application.

SUBROUTINES

obj2struct

my $struct_hr = obj2struct($obj);

Convert Toolforge::MixNMatch::Object::YearMonth instance to structure.

Returns reference to hash with structure.

struct2obj

my $obj = struct2obj($struct_hr);

Convert structure of time to object.

Returns Toolforge::MixNMatch::Object::YearMonth instance.

ERRORS

obj2struct():
        Object doesn't exist.
        Object isn't 'Toolforge::MixNMatch::Object::YearMonth'.

EXAMPLE1

use strict;
use warnings;

use Data::Printer;
use Toolforge::MixNMatch::Object::YearMonth;
use Toolforge::MixNMatch::Struct::YearMonth qw(obj2struct);

# Object.
my $obj = Toolforge::MixNMatch::Object::YearMonth->new(
        'count' => 6,
        'month' => 9,
        'year' => 2020,
);

# Get structure.
my $struct_hr = obj2struct($obj);

# Dump to output.
p $struct_hr;

# Output:
# \ {
#     cnt   6,
#     ym    202009
# }

EXAMPLE2

use strict;
use warnings;

use Toolforge::MixNMatch::Struct::YearMonth qw(struct2obj);

# Time structure.
my $struct_hr = {
       'cnt' => 6,
       'ym' => 202009,
};

# Get object.
my $obj = struct2obj($struct_hr);

# Get count.
my $count = $obj->count;

# Get month.
my $month = $obj->month;

# Get year.
my $year = $obj->year;

# Print out.
print "Count: $count\n";
print "Month: $month\n";
print "Year: $year\n";

# Output:
# Count: 6
# Month: 9
# Year: 2020

DEPENDENCIES

Error::Pure, Exporter, Readonly, Toolforge::MixNMatch::Struct::YearMonth.

SEE ALSO

Toolforge::MixNMatch::Struct

Toolforge Mix'n'match tool structures.

REPOSITORY

https://github.com/michal-josef-spacek/Toolforge-MixNMatch-Struct

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© Michal Josef Špaček 2020

BSD 2-Clause License

VERSION

0.04