FSharp.Data


FSharp.Data.Runtime.StructuralTypes Namespace

Types that represent the result of static type inference.

Type Description

Bit

Dummy type to represent that only one of "0" and "1" were found Will be generated as a 'bool', unless it's converted to another numerical type

Bit0

Dummy type to represent that only "0" was found. Will be generated as 'int', unless it's converted to Bit.

Bit1

Dummy type to represent that only "1" was found Will be generated as 'int', unless it's converted to Bit

InferedMultiplicity

For heterogeneous types (types that have multiple possible forms such as differently named XML nodes or records and arrays mixed together) this type represents the number of occurrences of individual forms

InferedProperty

A property of a record has a name and type and may be optional

InferedType

Represents inferred structural type. A type may be either primitive type (one of those listed by `primitiveTypes`) or it can be collection, (named) record and heterogeneous type. We also have `Null` type (which is a subtype of all non-primitive types) and universal `Top` type. * For collection, we infer the types of different things that appear in the collection and how many times they do. * A heterogeneous type (sum type) is simply a choice containing one of multiple different possibilities Why is collection not simply a list of Heterogeneous types? If we used that we would lose information about multiplicity and so we would not be able to generate nicer types!

InferedTypeTag

For heterogeneous types, this represents the tag that defines the form (that is either primitive type, collection, named record etc.)

PrimitiveInferedProperty

Represents type information about a primitive property (used mainly in the CSV provider) This type captures the type, unit of measure and handling of missing values (if we infer that the value may be missing, we can generate option or nullable)

TypeWrapper

Represents a transformation of a type