Trait Property

Source
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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§