IQueryDecoration
IQueryDecoration indicates that query is a decoration of another query.
/// <summary>Decorated <see cref="IQuery"/> that contains a value that is derived of other source.</summary>
public interface IQueryDecoration
{
/// <summary>Is decoration</summary>
bool IsDecoration { get; }
/// <summary>The underlying source <see cref="IQuery"/> of this decoration is derived of.</summary>
IQuery? DecorationSource { get; }
}
IQueryDecorator decorates a query in some specific way.
/// <summary>Decorates <see cref="IQuery"/>s in an unspecified way.</summary>
public interface IQueryDecorator
{
/// <summary>Decorate <paramref name="entry"/></summary>
/// <param name="entry"></param>
/// <returns>Decorated version of <paramref name="entry"/>. May or may not implement <see cref="IQueryDecoration"/>.</returns>
IQuery Decorate(IQuery entry);
}