internal DocumentFieldSchema(DocumentFieldType type, string description, string example, DocumentFieldSchema items, IReadOnlyDictionary <string, DocumentFieldSchema> properties) { Type = type; Description = description; Example = example; Items = items; Properties = properties; }
internal static DocTypeInfo DeserializeDocTypeInfo(JsonElement element) { Optional <string> description = default; Optional <DocumentBuildMode> buildMode = default; IReadOnlyDictionary <string, DocumentFieldSchema> fieldSchema = default; Optional <IReadOnlyDictionary <string, float> > fieldConfidence = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("description")) { description = property.Value.GetString(); continue; } if (property.NameEquals("buildMode")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } buildMode = new DocumentBuildMode(property.Value.GetString()); continue; } if (property.NameEquals("fieldSchema")) { Dictionary <string, DocumentFieldSchema> dictionary = new Dictionary <string, DocumentFieldSchema>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, DocumentFieldSchema.DeserializeDocumentFieldSchema(property0.Value)); } fieldSchema = dictionary; continue; } if (property.NameEquals("fieldConfidence")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, float> dictionary = new Dictionary <string, float>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetSingle()); } fieldConfidence = dictionary; continue; } } return(new DocTypeInfo(description.Value, Optional.ToNullable(buildMode), fieldSchema, Optional.ToDictionary(fieldConfidence))); }