Module canrun::goals::project

source ·
Expand description

Goals that deal with resolved values.

Not all relationships can be expressed with the simpler low level operations, especially when involve values of different types.

The project family of goals use State.constrain() to allow dealing with resolved values. These goals are relatively low level and may be a bit subtle to use correctly. They are provided as a foundation for building higher level goals.

Structs

A projection goal that succeeds if the resolved value passes an assertion test. Create with assert_1.
A projection goal that succeeds if the resolved values pass an assertion test. Create with assert_2.
A projection goal that allows deriving one resolved value from the other. Create with map_1.
A projection goal that allows deriving one resolved value from the other two. Create with map_2.
A projection goal that allows creating a new goal based on the resolved value. Create with project_1.
A projection goal that allows creating a new goal based on the resolved values. Create with project_2.

Functions

Create a projection goal that succeeds if the resolved value passes an assertion test.
Create a projection goal that succeeds if the resolved values pass an assertion test.
Create a projection goal that allows deriving one resolved value from the other.
Create a projection goal that allows deriving one resolved value from the other two.
Create a projection goal that allows creating a new goal based on the resolved value.
Create a projection goal that allows creating a new goal based on the resolved values.