/// <summary> /// /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <param name="mask"></param> /// <returns></returns> public static bool EqualsWithMask(this Edge a, Edge b, TripleMask mask) { return((!mask.HasFlag(TripleMask.Subject) || a.Subject.Equals(b.Subject)) && (!mask.HasFlag(TripleMask.Predicate) || a.Predicate.Equals(b.Predicate)) && (!mask.HasFlag(TripleMask.Object) || a.Object.Equals(b.Object)) && (!mask.HasFlag(TripleMask.Context) || a.Context.Equals(b.Context))); }
public static IndexKey Create(Edge triple, TripleMask index) { return(new IndexKey ( index.HasFlag(IndexCoverage.Subject) ? triple.Subject : null, index.HasFlag(IndexCoverage.Predicate) ? triple.Predicate : null, index.HasFlag(IndexCoverage.Object) ? triple.Object : null, index.HasFlag(IndexCoverage.Context) ? triple.Context : null )); }