Namespace Wolfgang.Etl.FixedWidth
Classes
- EtlPipelineFixedWidthExtensions
Class-named fixed-width source factories and sink terminators for the fluent Wolfgang.Etl.Abstractions.EtlPipeline chain (issue #253). Source factories hang off Wolfgang.Etl.Abstractions.EtlPipeline so a pipeline reads
EtlPipeline.Create().FixedWidthExtractor<Person>("people.txt"); sink terminators hang off Wolfgang.Etl.Abstractions.IEtlPipeline<T> so it ends… .FixedWidthLoader<Person>("out.txt").RunAsync().
- FieldContext
Provides contextual information about a fixed-width field to a ValueConverter or ValueParser delegate.
- FixedWidthBinaryExtractorOptions
Options for the Stream-based FixedWidthBinaryExtractor<TRecord> constructors.
- FixedWidthBinaryExtractor<TRecord>
Reads a fixed-length binary record file (mainframe / COBOL, #21) and yields records of type
TRecord. Unlike FixedWidthExtractor<TRecord>, records are not newline-delimited — each record is a fixed number of bytes (the sum of the ByteLength of every field), read directly from the stream, so packed-decimal and binary bytes that happen to be0x0A/0x0Dare never mistaken for record separators.
- FixedWidthBinaryLoaderOptions
Options for the Stream-based FixedWidthBinaryLoader<TRecord> constructors.
- FixedWidthBinaryLoader<TRecord>
Writes records of type
TRecordto a fixed-length binary record stream (mainframe / COBOL, #21) — the write counterpart of FixedWidthBinaryExtractor<TRecord>. Each record is encoded to a fixed number of bytes (the field byte widths) and written back-to-back with no delimiters, encodingCOMP-3packed-decimal andCOMPbinary-integer fields alongside text.
- FixedWidthConverter
Provides built-in value converter, header converter, and value parser functions for use with FixedWidthLoader<TRecord> and FixedWidthExtractor<TRecord>.
- FixedWidthDataReaderOptions
Options for the Stream-based FixedWidthDataReader<TRecord> constructor.
- FixedWidthDataReader<TRecord>
A forward-only, read-only IDataReader over a fixed-width text source, with the field layout taken from the
[FixedWidthField]/[FixedWidthSkip]attributes onTRecord(#26). Serves each field's value directly from the parsed line — noTRecordinstance is created per row — which is the optimal shape forSqlBulkCopy, Load(IDataReader), and other ADO.NET consumers that would otherwise discard a POCO per row.
- FixedWidthError
A record that failed to parse during extraction — a "dead letter". When OnError is set, each failed line is reported as one of these instead of the exception aborting the run (provided Skip is configured to continue). Capture them for logging, a dead-letter queue, or post-run inspection (#29).
- FixedWidthExtractorOptions<TRecord>
Configuration for a FixedWidthExtractor<TRecord>, supplied to its constructor. Carries every parsing setting that is independent of the input shape; the Stream constructors take the derived FixedWidthExtractorStreamOptions<TRecord>, which adds the byte-decoding
Encodinga TextReader caller has already decided.
- FixedWidthExtractorStreamOptions<TRecord>
Configuration for a FixedWidthExtractor<TRecord> constructed over a Stream: everything in FixedWidthExtractorOptions<TRecord> plus the Encoding used to decode the bytes. The TextReader constructors take the base record instead, because a reader has already decoded its bytes and an
Encodingthere would be settable but inert.
- FixedWidthExtractor<TRecord>
Reads a fixed-width text file and yields records of type
TRecordas an asynchronous stream.
- FixedWidthFieldInfo
Read-only metadata for a single resolved column in a fixed-width record layout — either a mapped field or a skipped column — exposed by FixedWidthSchema (#22).
- FixedWidthLoaderOptions
Configuration for a FixedWidthLoader<TRecord>, supplied to its constructor. Carries every formatting setting that is independent of the output shape; the Stream constructors take the derived FixedWidthLoaderStreamOptions, which adds the byte-encoding
Encodinga TextWriter caller has already decided.
- FixedWidthLoaderStreamOptions
Configuration for a FixedWidthLoader<TRecord> constructed over a Stream: everything in FixedWidthLoaderOptions plus the Encoding used to encode the bytes. The TextWriter constructors take the base record instead, because a writer already owns its encoding and an
Encodingthere would be settable but inert.
- FixedWidthLoader<TRecord>
Writes records of type
TRecordto a fixed-width text stream as an asynchronous operation.
- FixedWidthMultiRecordExtractor
Reads a fixed-width file that interleaves multiple record types — for example a mainframe batch file with a header, detail, and trailer layout on different lines — and yields each line as the object it maps to (#19).
- FixedWidthMultiRecordExtractorOptions
Options for the Stream-based FixedWidthMultiRecordExtractor constructors.
- FixedWidthReport
A progress report for fixed-width extract and load operations. Extends Wolfgang.Etl.Abstractions.Report with additional diagnostic properties specific to fixed-width file processing.
- FixedWidthReportOptions
The counts that make up a FixedWidthReport.
- FixedWidthSchema
A read-only view over the resolved fixed-width field layout for a record type (#22). Exposes the field/skip columns, positions, widths, types, and formatting that FixedWidthExtractor<TRecord> / FixedWidthLoader<TRecord> derive from
[FixedWidthField]/[FixedWidthSkip]attributes — useful for generating documentation, building validation tooling, or debugging a layout.
- FixedWidthSchemaBuilder<T>
Builds a FixedWidthSchema for
Tfrom a fluent, type-safe code API instead of[FixedWidthField]/[FixedWidthSkip]attributes (#23). Use it when the record type is not yours to decorate, when you prefer configuration-as-code, or when the layout is built dynamically. The resulting schema is equivalent to one resolved from attributes — assign it to Schema / Schema to use it, or inspect it with Fields / ToDiagram().
- FixedWidthTransformerOptions
Configuration for a FixedWidthTransformer<TSource, TDestination>, supplied to its constructor. The transformer has no settings of its own beyond the base-stage ones it inherits (
ReportingInterval,MaximumItemCount,SkipItemCount,ErrorPolicy); the record exists so the transformer is configured the same way as every other stage (ADR-0009).
- FixedWidthTransformer<TSource, TDestination>
Transforms a stream of
TSourcerecords intoTDestinationrecords in a single streaming pass (#14) — the middle stage of an extract → transform → load pipeline. Compose it between a FixedWidthExtractor<TRecord> reading one fixed-width layout and a FixedWidthLoader<TRecord> writing another to reformat a file (reorder, add/remove, or reformat fields).
- ValidationResult
The result returned by a RecordValidator delegate: the ValidationAction to take for a parsed record and an optional human-readable reason (surfaced in debug logs).
Interfaces
- IFixedWidthExtractorBuilder<T>
A fluent builder for a fixed-width extraction stage of a generic Wolfgang.Etl.Abstractions.EtlPipeline. Returned by the
FixedWidthExtractorsource factories in EtlPipelineFixedWidthExtensions.
- IFixedWidthLoaderBuilder<T>
A fluent builder for a fixed-width loader that terminates a generic Wolfgang.Etl.Abstractions.EtlPipeline. Returned by the
FixedWidthLoadersink terminators in EtlPipelineFixedWidthExtensions.
Delegates
- FixedWidthValueParser
Converts a raw field value read from the file into the target property type. The
textis a zero-copy slice of the source line — call ToString() only if you need a string.