![]() |
Bitcoin Core
25.99.0
P2P Digital Currency
|
This type encapsulates the miniscript type system properties. More...
#include <miniscript.h>
Public Member Functions | |
constexpr Type | operator| (Type x) const |
Compute the type with the union of properties. More... | |
constexpr Type | operator& (Type x) const |
Compute the type with the intersection of properties. More... | |
constexpr bool | operator<< (Type x) const |
Check whether the left hand's properties are superset of the right's (= left is a subtype of right). More... | |
constexpr bool | operator< (Type x) const |
Comparison operator to enable use in sets/maps (total ordering incompatible with <<). More... | |
constexpr bool | operator== (Type x) const |
Equality operator. More... | |
constexpr Type | If (bool x) const |
The empty type if x is false, itself otherwise. More... | |
Private Member Functions | |
constexpr | Type (uint32_t flags) |
Internal constructor used by the ""_mst operator. More... | |
Private Attributes | |
uint32_t | m_flags |
Internal bitmap of properties (see ""_mst operator for details). More... | |
Friends | |
constexpr friend Type | operator""_mst (const char *c, size_t l) |
The only way to publicly construct a Type is using this literal operator. More... | |
This type encapsulates the miniscript type system properties.
Every miniscript expression is one of 4 basic types, and additionally has a number of boolean type properties.
The basic types are:
There a type properties that help reasoning about correctness:
Additional type properties help reasoning about nonmalleability:
One type property is an implementation detail:
Five more type properties for representing timelock information. Spend paths in miniscripts containing conflicting timelocks and heightlocks cannot be spent together. This helps users detect if miniscript does not match the semantic behaviour the user expects.
Definition at line 121 of file miniscript.h.
|
inlineexplicitconstexprprivate |
Internal constructor used by the ""_mst operator.
Definition at line 126 of file miniscript.h.
|
inlineconstexpr |
The empty type if x is false, itself otherwise.
Definition at line 148 of file miniscript.h.
Compute the type with the intersection of properties.
Definition at line 136 of file miniscript.h.
|
inlineconstexpr |
Comparison operator to enable use in sets/maps (total ordering incompatible with <<).
Definition at line 142 of file miniscript.h.
|
inlineconstexpr |
Check whether the left hand's properties are superset of the right's (= left is a subtype of right).
Definition at line 139 of file miniscript.h.
|
inlineconstexpr |
Equality operator.
Definition at line 145 of file miniscript.h.
Compute the type with the union of properties.
Definition at line 133 of file miniscript.h.
|
friend |
The only way to publicly construct a Type is using this literal operator.
Definition at line 152 of file miniscript.h.
|
private |
Internal bitmap of properties (see ""_mst operator for details).
Definition at line 123 of file miniscript.h.