RecordsModule

PackageReified.Schema.Contracts
The record frontend: parses F# source with the F# compiler's syntax tree (no type checking) and lowers [<DeriveSchema>]-marked records into the same ContractDecl AST the .contract parser produces, so both entry points share the resolver and emitter. Attributes and literals are read from source text; nothing runs at runtime.

Summary

NameSignatureSynopsis
Operations
parseRecords.parse naming filePath sourceTextParses one source file without project-wide references.
parseSetRecords.parseSet naming sourcesParses a project set.

Operations

kind:member

parse

Records.parse naming filePath sourceText
Member
Parses one source file without project-wide references. Prefer <c>parseSet</c> for build generation.

Parameters

NameTypeDescription
namingSchemaNaming
filePathstring
sourceTextstring

Returns

Result<ContractFile, ContractDiagnostic list>
kind:member

parseSet

Records.parseSet naming sources
Member
Parses a project set. The first pass builds a catalogue keyed by each derived type's fully qualified namespace/module path and resolves every contract version across the set; the second pass only accepts cross-file references written with that full path.

Parameters

NameTypeDescription
namingSchemaNaming
sources(string * string) list

Returns

(string * Result<ContractFile, ContractDiagnostic list>) list