NAME
    Data::Sah::Normalize - Normalize Sah schema

VERSION
    This document describes version 0.01 of Data::Sah::Normalize (from Perl
    distribution Data-Sah-Normalize), released on 2014-07-08.

SYNOPSIS
     use Data::Sah::Normalize qw(normalize_clset normalize_schema);

     my $nclset = normalize_clset({'!a'=>1}); # -> {a=>1, 'a.op'=>'not'}
     my $nsch   = normalize_schema("int");    # -> ["int", {}, {}]

DESCRIPTION
    This often-needed functionality is split from the main Data::Sah to keep
    it in a small and minimal-dependencies package.

FUNCTIONS
  normalize_clset($clset) => HASH
    Normalize a clause set (hash). Return a shallow copy of the original
    hash. Die on failure.

    TODO: option to recursively normalize clause which contains sah clauses
    (e.g. "of").

  normalize_schema($sch) => ARRAY
    Normalize a Sah schema (scalar or array). Return an array. Produce a
    2-level copy of schema, so it's safe to add/delete/modify the normalized
    schema's clause set and extras (but clause set's and extras' values are
    still references to the original). Die on failure.

    TODO: recursively normalize clause which contains sah clauses (e.g.
    "of").

SEE ALSO
    Sah, Data::Sah

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/Data-Sah-Normalize>.

SOURCE
    Source repository is at
    <https://github.com/sharyanto/perl-Data-Sah-Normalize>.

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Sah-Normalize>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

AUTHOR
    Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2014 by Steven Haryanto.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

