3using System.Collections;
 
    4using System.Collections.ObjectModel;
 
   10    public QueryArr(IEnumerable<T> v)
 
   14            throw new ArgumentNullException(nameof(v), 
"Value cannot be null.");
 
   17        Unwrap = 
new ReadOnlyCollection<T>(v.ToList());
 
   20    public ReadOnlyCollection<T> Unwrap { 
get; }
 
   22    public int Count => Unwrap.Count;
 
   24    public T 
this[
int index] => Unwrap[index];
 
   28        throw new NotImplementedException();
 
   31    public override bool Equals(
Query? o)
 
   33        return o is QueryArr<T> other && Unwrap.SequenceEqual(other.Unwrap);
 
   36    public override bool Equals(
object? otherObject)
 
   38        return Equals(otherObject as 
Query);
 
   41    public override int GetHashCode()
 
   46            for (
int i = 0; i < Unwrap.Count; i++)
 
   49                hash = hash * 31 + (item?.GetHashCode() ?? 0);
 
   55    public override string ToString()
 
   57        return $
"QueryArr({string.Join(", 
", Unwrap)})";
 
   60    public IEnumerator<T> GetEnumerator()
 
   62        return Unwrap.GetEnumerator();
 
   65    IEnumerator IEnumerable.GetEnumerator()
 
   67        return GetEnumerator();
 
Represents the abstract base class for constructing FQL queries.
 
Provides functionality for writing data in a streaming manner to a buffer or a stream.
 
Represents the base interface for a query fragment used for FQL query construction.