pub trait Property: Sized {
Show 37 methods // Required methods fn from_true() -> Self; fn from_false() -> Self; fn from_pk_k() -> Self; fn from_pk_h() -> Self; fn from_multi(k: usize, n: usize) -> Self; fn from_hash() -> Self; fn from_txtemplate() -> Self; fn from_time(t: u32) -> Self; fn cast_alt(self) -> Result<Self, ErrorKind>; fn cast_swap(self) -> Result<Self, ErrorKind>; fn cast_check(self) -> Result<Self, ErrorKind>; fn cast_dupif(self) -> Result<Self, ErrorKind>; fn cast_verify(self) -> Result<Self, ErrorKind>; fn cast_nonzero(self) -> Result<Self, ErrorKind>; fn cast_zeronotequal(self) -> Result<Self, ErrorKind>; fn cast_true(self) -> Result<Self, ErrorKind>; fn cast_or_i_false(self) -> Result<Self, ErrorKind>; fn and_b(left: Self, right: Self) -> Result<Self, ErrorKind>; fn and_v(left: Self, right: Self) -> Result<Self, ErrorKind>; fn or_b(left: Self, right: Self) -> Result<Self, ErrorKind>; fn or_d(left: Self, right: Self) -> Result<Self, ErrorKind>; fn or_c(left: Self, right: Self) -> Result<Self, ErrorKind>; fn or_i(left: Self, right: Self) -> Result<Self, ErrorKind>; fn and_or(a: Self, b: Self, c: Self) -> Result<Self, ErrorKind>; fn threshold<S>(k: usize, n: usize, sub_ck: S) -> Result<Self, ErrorKind> where S: FnMut(usize) -> Result<Self, ErrorKind>; // Provided methods fn sanity_checks(&self) { ... } fn from_multi_a(k: usize, n: usize) -> Self { ... } fn from_sha256() -> Self { ... } fn from_hash256() -> Self { ... } fn from_ripemd160() -> Self { ... } fn from_hash160() -> Self { ... } fn from_after(t: u32) -> Self { ... } fn from_older(t: u32) -> Self { ... } fn cast_unlikely(self) -> Result<Self, ErrorKind> { ... } fn cast_likely(self) -> Result<Self, ErrorKind> { ... } fn and_n(left: Self, right: Self) -> Result<Self, ErrorKind> { ... } fn type_check<Pk, Ctx, C>( fragment: &Terminal<Pk, Ctx>, child: C ) -> Result<Self, Error<Pk, Ctx>> where C: FnMut(usize) -> Option<Self>, Pk: MiniscriptKey, Ctx: ScriptContext { ... }
}
Expand description

Trait representing a type property, which defines how the property propagates from terminals to the root of a Miniscript

Required Methods§

source

fn from_true() -> Self

Type property of the True fragment

source

fn from_false() -> Self

Type property of the False fragment

source

fn from_pk_k() -> Self

Type property of the PkK fragment

source

fn from_pk_h() -> Self

Type property of the PkH fragment

source

fn from_multi(k: usize, n: usize) -> Self

Type property of a Multi fragment

source

fn from_hash() -> Self

Type property of a hash fragment

source

fn from_txtemplate() -> Self

Type property of a TxTemplate hash. Default implementation simply passes through to from_txtemplate

source

fn from_time(t: u32) -> Self

Type property of a timelock

source

fn cast_alt(self) -> Result<Self, ErrorKind>

Cast using the Alt wrapper

source

fn cast_swap(self) -> Result<Self, ErrorKind>

Cast using the Swap wrapper

source

fn cast_check(self) -> Result<Self, ErrorKind>

Cast using the Check wrapper

source

fn cast_dupif(self) -> Result<Self, ErrorKind>

Cast using the DupIf wrapper

source

fn cast_verify(self) -> Result<Self, ErrorKind>

Cast using the Verify wrapper

source

fn cast_nonzero(self) -> Result<Self, ErrorKind>

Cast using the NonZero wrapper

source

fn cast_zeronotequal(self) -> Result<Self, ErrorKind>

Cast using the ZeroNotEqual wrapper

source

fn cast_true(self) -> Result<Self, ErrorKind>

Cast by changing [X] to AndV([X], True)

source

fn cast_or_i_false(self) -> Result<Self, ErrorKind>

Cast by changing [X] to or_i([X], 0) or or_i(0, [X])

source

fn and_b(left: Self, right: Self) -> Result<Self, ErrorKind>

Computes the type of an AndB fragment

source

fn and_v(left: Self, right: Self) -> Result<Self, ErrorKind>

Computes the type of an AndV fragment

source

fn or_b(left: Self, right: Self) -> Result<Self, ErrorKind>

Computes the type of an OrB fragment

source

fn or_d(left: Self, right: Self) -> Result<Self, ErrorKind>

Computes the type of an OrD fragment

source

fn or_c(left: Self, right: Self) -> Result<Self, ErrorKind>

Computes the type of an OrC fragment

source

fn or_i(left: Self, right: Self) -> Result<Self, ErrorKind>

Computes the type of an OrI fragment

source

fn and_or(a: Self, b: Self, c: Self) -> Result<Self, ErrorKind>

Computes the type of an AndOr fragment

source

fn threshold<S>(k: usize, n: usize, sub_ck: S) -> Result<Self, ErrorKind>
where S: FnMut(usize) -> Result<Self, ErrorKind>,

Computes the type of an Thresh fragment

Provided Methods§

source

fn sanity_checks(&self)

Any extra sanity checks/assertions that should be applied after typechecking

source

fn from_multi_a(k: usize, n: usize) -> Self

Type property of a MultiA fragment

source

fn from_sha256() -> Self

Type property of a Sha256 hash. Default implementation simply passes through to from_hash

source

fn from_hash256() -> Self

Type property of a Hash256 hash. Default implementation simply passes through to from_hash

source

fn from_ripemd160() -> Self

Type property of a Ripemd160 hash. Default implementation simply passes through to from_hash

source

fn from_hash160() -> Self

Type property of a Hash160 hash. Default implementation simply passes through to from_hash

source

fn from_after(t: u32) -> Self

Type property of a relative timelock. Default implementation simply passes through to from_time

source

fn from_older(t: u32) -> Self

Type property of an absolute timelock. Default implementation simply passes through to from_time

source

fn cast_unlikely(self) -> Result<Self, ErrorKind>

Cast by changing [X] to or_i([X], 0). Default implementation simply passes through to cast_or_i_false

source

fn cast_likely(self) -> Result<Self, ErrorKind>

Cast by changing [X] to or_i(0, [X]). Default implementation simply passes through to cast_or_i_false

source

fn and_n(left: Self, right: Self) -> Result<Self, ErrorKind>

Computes the type of an AndN fragment

source

fn type_check<Pk, Ctx, C>( fragment: &Terminal<Pk, Ctx>, child: C ) -> Result<Self, Error<Pk, Ctx>>
where C: FnMut(usize) -> Option<Self>, Pk: MiniscriptKey, Ctx: ScriptContext,

Compute the type of a fragment, given a function to look up the types of its children, if available and relevant for the given fragment

Object Safety§

This trait is not object safe.

Implementors§