From 002c918c96923ed4636d3f2d39e125e4e65ad3ac Mon Sep 17 00:00:00 2001 From: Nick Alexander Date: Wed, 26 Apr 2017 10:17:15 -0700 Subject: [PATCH] Pre: Move PushComputed up module hierarchy; make it public. --- query-algebrizer/src/clauses/mod.rs | 12 ++++++++++++ query-algebrizer/src/clauses/or.rs | 19 +++++-------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/query-algebrizer/src/clauses/mod.rs b/query-algebrizer/src/clauses/mod.rs index 5b47beff..0564083a 100644 --- a/query-algebrizer/src/clauses/mod.rs +++ b/query-algebrizer/src/clauses/mod.rs @@ -841,6 +841,18 @@ impl ConjoiningClauses { } } +pub trait PushComputed { + fn push_computed(&mut self, item: ComputedTable) -> DatomsTable; +} + +impl PushComputed for Vec { + fn push_computed(&mut self, item: ComputedTable) -> DatomsTable { + let next_index = self.len(); + self.push(item); + DatomsTable::Computed(next_index) + } +} + // These are helpers that tests use to build Schema instances. #[cfg(test)] fn associate_ident(schema: &mut Schema, i: NamespacedKeyword, e: Entid) { diff --git a/query-algebrizer/src/clauses/or.rs b/query-algebrizer/src/clauses/or.rs index 971ff010..e619cdfc 100644 --- a/query-algebrizer/src/clauses/or.rs +++ b/query-algebrizer/src/clauses/or.rs @@ -29,7 +29,10 @@ use mentat_query::{ WhereClause, }; -use clauses::ConjoiningClauses; +use clauses::{ + ConjoiningClauses, + PushComputed, +}; use errors::{ Result, @@ -74,18 +77,6 @@ fn _simply_matches_value_place(left: &PatternValuePlace, right: &PatternValuePla } } -trait PushComputed { - fn push_computed(&mut self, item: ComputedTable) -> DatomsTable; -} - -impl PushComputed for Vec { - fn push_computed(&mut self, item: ComputedTable) -> DatomsTable { - let next_index = self.len(); - self.push(item); - DatomsTable::Computed(next_index) - } -} - pub enum DeconstructedOrJoin { KnownSuccess, KnownEmpty(EmptyBecause), @@ -1119,4 +1110,4 @@ mod testing { [_ :foo/height ?x]]"#; compare_ccs(alg(&schema, query), alg(&schema, simple)); } -} \ No newline at end of file +}