pub trait Property: Sized {
Show 37 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>
; 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

Type property of the True fragment

Type property of the False fragment

Type property of the PkK fragment

Type property of the PkH fragment

Type property of a Multi fragment

Type property of a hash fragment

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

Type property of a timelock

Cast using the Alt wrapper

Cast using the Swap wrapper

Cast using the Check wrapper

Cast using the DupIf wrapper

Cast using the Verify wrapper

Cast using the NonZero wrapper

Cast using the ZeroNotEqual wrapper

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

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

Computes the type of an AndB fragment

Computes the type of an AndV fragment

Computes the type of an OrB fragment

Computes the type of an OrD fragment

Computes the type of an OrC fragment

Computes the type of an OrI fragment

Computes the type of an AndOr fragment

Computes the type of an Thresh fragment

Provided Methods

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

Type property of a MultiA fragment

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

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

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

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

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

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

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

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

Computes the type of an AndN fragment

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

Implementors