---
name: "Declare::Constraints::Simple::Library::Exportable"
section: "3pm"
platform: "linux"
package: "libdeclare-constraints-simple-perl"
version: "0.03-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Declare::Constraints::Simple::Library::Exportable"
---

# Declare::Constraints::Simple::Library::Exportable(3pm)

Export Facilities

## NAME

Declare::Constraints::Simple::Library::Exportable - Export Facilities

## DESCRIPTION

This contains the constraint export logic of the module.

## METHODS

### import($flag, @args)

```
  use ExportableModule->All;
  # or
  use ExportableModule-Only => qw(Constraint1 ...);
  # or
  use ExportableModule-Library;
```

Exports the constraints to the calling namespace. This includes all libraries in Declare::Constraints::Simple::Library, that package itself (providing all default constraints) or Declare::Constraints::Simple itself as a shortcut.

Possible flags are

- All

  Imports all constraints registered in the class and its base classes.

- Only

  ```
    use Declare::Constraints::Simple::Library::Scalar-Only => 'HasLength';
  ```

  The above line would only import the `"HasLength"` constraints from the `"Scalar"` default library. Note however, that you could also just have said

  ```
    use Declare::Constraints::Simple-Only => 'HasLength';
  ```

  as both `"::Simple"` and `"::Simple::Library"` work on all default libraries.

- Library

  You can use this to define your own constraint library. For more information, see Declare::Constraints::Simple::Library::Base.

### \_build\_handle\_map()

Internal method to build constraint-to-class mappings.

### \_export\_all($target, $handle\_map)

Internal method. Exports all handles in `$handle_map` into the `$target`  namespace.

### \_export\_these($target, $handle\_map, @constraints)

Internal method. Exports all `@constraints` from `$handle_map` into the `$target` namespace.

## SEE ALSO

Declare::Constraints::Simple, Declare::Constraints::Simple::Library, Declare::Constraints::Simple::Library::Base

## AUTHOR

Robert 'phaylon' Sedlacek `"<phaylon@dunkelheit.at>"`

## LICENSE AND COPYRIGHT

This module is free software, you can redistribute it and/or modify it  under the same terms as perl itself.
