From 47c87769d4a88005364b4ec7299ba6d9ef2f8252 Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Wed, 27 Sep 2023 07:57:10 +1000 Subject: [PATCH] Document And/Or vectors contain 2 elements It is not immediately obvious that the `Concrete::And` and `Or` vectors contain exactly 2 elements, add code comment to document it. --- src/policy/concrete.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/policy/concrete.rs b/src/policy/concrete.rs index bdc778d0c..6315f3366 100644 --- a/src/policy/concrete.rs +++ b/src/policy/concrete.rs @@ -37,6 +37,9 @@ const MAX_COMPILATION_LEAVES: usize = 1024; /// Concrete policy which corresponds directly to a miniscript structure, /// and whose disjunctions are annotated with satisfaction probabilities /// to assist the compiler. +// Currently the vectors in And/Or are limited to two elements, this is a general miniscript thing +// not specific to rust-miniscript. Eventually we would like to extend these to be n-ary, but first +// we need to decide on a game plan for how to efficiently compile n-ary disjunctions #[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum Policy { /// Unsatisfiable.