
VCI::Util - Types and Utility Functions used by VCI

This contains mostly subtypes used by accessors in various VCI modules.

All of these are extensions of the ArrayRef type from Moose::Util::TypeConstraints.
ArrayOfChangesAn arrayref that can only contain Text::Diff::Parser::Change objects.
ArrayOfCommitsAn arrayref that can only contain VCI::Abstract::Commit objects.
ArrayOfCommittablesAn arrayref that can only contain objects that implement VCI::Abstract::Committable.
ArrayOfContainersAn arrayref that can only contain objects that implement VCI::Abstract::FileContainer.
ArrayOfProjectsAn arrayref that can only contain VCI::Abstract::Project objects.
DateTimeA DateTime object.
If you pass in a number for this argument, it will be interpreted as a Unix epoch (seconds since January 1, 1970) and converted to a DateTime object using "from_epoch" in DateTime.
If you pass in a string that's not just an integer, it will be parsed by DateTime::Format::DateParse. (Note: If you don't specify a time zone in your string, it will be assumed your time is in the local time zone.)
PathA Path::Abstract object.
If you pass a string for this argument,
it will be converted using "new" in Path::Abstract.
This means that paths are always Unix paths--the path separator is always /.
\path\to\file will not work.
After processing,
the path will never start with / and never end with /.
(In other words,
it will always be a relative path and never end with /.)
If you pass the root path (/) you will get an empty path.