.. index:: single: hook_pipeline(Pipeline)
.. _hook_pipeline/1:

.. rst-class:: right

**object**

``hook_pipeline(Pipeline)``
===========================

* ``Pipeline`` - List of hook objects.


Use a pipeline (represented using a list) of hook objects to expand terms and goals. The expansion results from a hook object are passed to the next hook object in the pipeline.

| **Availability:** 
|    ``logtalk_load(hook_flows(loader))``

| **Author:** Paulo Moura
| **Version:** 2:0:0
| **Date:** 2024-09-27

| **Compilation flags:**
|    ``static, context_switching_calls``


| **Implements:**
|    ``public`` :ref:`expanding <expanding/0>`

| **Remarks:**

   - Usage: Compile source files that should be expanded using the pipeline of hook objects using the compiler option ``hook(hook_pipeline(Pipeline))``.

| **Inherited public predicates:**
|     :ref:`expanding/0::goal_expansion/2`  :ref:`expanding/0::term_expansion/2`  

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

(no local declarations; see entity ancestors if any)

Protected predicates
--------------------

(no local declarations; see entity ancestors if any)

Private predicates
------------------

(no local declarations; see entity ancestors if any)

Operators
---------

(none)

.. seealso::

   :ref:`hook_set(Set) <hook_set/1>`

