public static BifoqlType Optional(BifoqlType type) { // Already optional? Just return it. return((type is OptionalType) ? type : new OptionalType(type)); }
public BifoqlNamedType(string name, BifoqlType type, string documentation = null) { Guard.ArgumentNotNull(name, nameof(name)); Guard.ArgumentNotNull(type, nameof(type)); Name = name; Type = type; _documentation = documentation; }
public Schema(BifoqlType rootType, params BifoqlNamedType[] namedTypes) { _rootType = rootType; foreach (var namedType in namedTypes) { _namedTypes.Add(namedType.Name, namedType); } }
public IndexParameter(string name, BifoqlType type, bool optional) { Guard.ArgumentNotNull(name, nameof(name)); Guard.ArgumentNotNull(type, nameof(type)); Name = name; Type = type; Optional = optional; }
public MapProperty(string name, BifoqlType type, string documentation) { Guard.ArgumentNotNull(name, nameof(name)); Guard.ArgumentNotNull(type, nameof(type)); Name = name; Type = type; Documentation = documentation; }
public IndexedType(BifoqlType resultType, params IndexParameter[] parameters) { Guard.ArgumentNotNull(resultType, nameof(resultType)); ResultType = resultType; Parameters = parameters; }
public DictionaryType(BifoqlType valueType) { Guard.ArgumentNotNull(valueType, nameof(valueType)); ValueType = valueType; }
public ArrayType(BifoqlType elementType) { Guard.ArgumentNotNull(elementType, nameof(elementType)); ElementType = elementType; }
public OptionalType(BifoqlType type) { Guard.ArgumentNotNull(type, nameof(type)); Type = type; }
public static IndexParameter IndexParameter(string name, BifoqlType type, bool optional = false) { return(new IndexParameter(name, type, optional)); }
public static BifoqlNamedType CreateNamedType(string name, BifoqlType type, string documentation = null) { return(new BifoqlNamedType(name, type, documentation)); }
public static BifoqlType Index(BifoqlType resultType, params IndexParameter[] parameters) { return(new IndexedType(resultType, parameters)); }
public static MapProperty Property(string key, BifoqlType value, string documentation = null) { return(new MapProperty(key, value, documentation)); }
public static BifoqlType DictionaryOf(BifoqlType valueType) { return(new DictionaryType(valueType)); }
public static BifoqlType ArrayOf(BifoqlType elementType) { return(new ArrayType(elementType)); }