1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
use crate::process::traversal::TraversalBuilder; use crate::structure::GValue; pub trait IntoChooseStep { fn into_step(self) -> Vec<GValue>; } impl IntoChooseStep for TraversalBuilder { fn into_step(self) -> Vec<GValue> { vec![self.bytecode.into()] } } impl IntoChooseStep for (TraversalBuilder, TraversalBuilder) { fn into_step(self) -> Vec<GValue> { let mut out = vec![]; out.append(&mut vec![self.0.bytecode.into()]); out.append(&mut vec![self.1.bytecode.into()]); out } } impl IntoChooseStep for (TraversalBuilder, TraversalBuilder, TraversalBuilder) { fn into_step(self) -> Vec<GValue> { let mut out = vec![]; out.append(&mut vec![self.0.bytecode.into()]); out.append(&mut vec![self.1.bytecode.into()]); out.append(&mut vec![self.2.bytecode.into()]); out } }