Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a94f7c7
refactor: replace fixed lat/lon pair contract with N-value GetValues/…
Copilot Apr 5, 2026
89a6a24
reset: revert all previous changes, clean slate identical to main
Copilot Apr 5, 2026
a5ee061
Revert "reset: revert all previous changes, clean slate identical to …
petesramek Apr 5, 2026
9660b87
Revert "refactor: replace fixed lat/lon pair contract with N-value Ge…
petesramek Apr 5, 2026
345637d
updated slnx
petesramek Apr 5, 2026
a86ac30
Updated docs for version 0.0
petesramek Apr 5, 2026
5641294
fixed slnx
petesramek Apr 5, 2026
ed1009a
Merge branch 'copilot/assess-repository-state' of https://github.com/…
petesramek Apr 5, 2026
b485003
removed 0.0 api ref
petesramek Apr 5, 2026
5d88f1e
fixe slnx
petesramek Apr 5, 2026
a7b3318
removed 1.0
petesramek Apr 5, 2026
37db229
refactor: replace fixed lat/lon pair contract with N-value encoding a…
Copilot Apr 5, 2026
0bbd5d0
Updated docs for version 0.0
Copilot Apr 6, 2026
645e521
feat: replace ValuesPerItem/GetValues/CreateItem with IPolylineWriter…
Copilot Apr 6, 2026
9604ff7
refactor: remove StackAllocLimit from public API, update SensorData s…
Copilot Apr 6, 2026
e863407
refactor: remove EnsureCapacity from PolylineWriter, pass max capacit…
Copilot Apr 6, 2026
9af79d9
refactor: move buffer allocation to encoder with ArrayPool threshold,…
Copilot Apr 6, 2026
fc751ae
feat: remove IPolylineWriter/IPolylineReader; restore stackalloc in e…
Copilot Apr 6, 2026
9f4b278
docs: update README code examples after IPolylineWriter/IPolylineRead…
Copilot Apr 6, 2026
6ccf624
refactored
petesramek Apr 6, 2026
6e40c94
Updated docs for version 0.0
petesramek Apr 6, 2026
9988339
feat: introduce PolylineValueState struct to replace ref int state in…
Copilot Apr 6, 2026
f21d3ec
docs: update README examples to use PolylineValueState state fields
Copilot Apr 6, 2026
621d6e5
refactor: move PolylineValueState to local variables in Encode/Decode…
Copilot Apr 6, 2026
8511b50
docs: update README examples to use new ValuesPerItem and states[] pa…
Copilot Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Class AbstractPolylineDecoder<TPolyline, TCoordinate>
body:
- api1: Class AbstractPolylineDecoder<TPolyline, TCoordinate>
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L22
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L22
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2
commentId: T:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2
Expand All @@ -14,14 +14,14 @@ body:
url: PolylineAlgorithm.Abstraction.html
- name: Assembly
value: PolylineAlgorithm.dll
- markdown: Provides a base implementation for decoding encoded polyline strings into sequences of geographic coordinates.
- markdown: Provides a base implementation for decoding encoded polyline strings into sequences of items.
- code: 'public abstract class AbstractPolylineDecoder<TPolyline, TCoordinate> : IPolylineDecoder<TPolyline, TCoordinate>'
- h4: Type Parameters
- parameters:
- name: TPolyline
description: The type that represents the encoded polyline input.
- name: TCoordinate
description: The type that represents a decoded geographic coordinate.
description: The type that represents a decoded item.
- h4: Inheritance
- inheritance:
- text: object
Expand Down Expand Up @@ -52,19 +52,19 @@ body:
- markdown: >-
Derive from this class to implement a decoder for a specific polyline type. Override <xref href="PolylineAlgorithm.Abstraction.AbstractPolylineDecoder%602.GetReadOnlyMemory(%600%40)" data-throw-if-not-resolved="false"></xref>

and <xref href="PolylineAlgorithm.Abstraction.AbstractPolylineDecoder%602.CreateCoordinate(System.Double%2cSystem.Double)" data-throw-if-not-resolved="false"></xref> to provide type-specific behavior.
and <xref href="PolylineAlgorithm.Abstraction.AbstractPolylineDecoder%602.Read(PolylineAlgorithm.Internal.PolylineReader)" data-throw-if-not-resolved="false"></xref> to provide type-specific behavior.
- h2: Constructors
- api3: AbstractPolylineDecoder()
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2__ctor
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L28
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L28
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.#ctor
commentId: M:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.#ctor
- markdown: Initializes a new instance of the <xref href="PolylineAlgorithm.Abstraction.AbstractPolylineDecoder%602" data-throw-if-not-resolved="false"></xref> class with default encoding options.
- code: protected AbstractPolylineDecoder()
- api3: AbstractPolylineDecoder(PolylineEncodingOptions)
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2__ctor_PolylineAlgorithm_PolylineEncodingOptions_
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L40
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L40
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.#ctor(PolylineAlgorithm.PolylineEncodingOptions)
commentId: M:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.#ctor(PolylineAlgorithm.PolylineEncodingOptions)
Expand All @@ -86,7 +86,7 @@ body:
- h2: Properties
- api3: Options
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2_Options
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L54
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L54
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.Options
commentId: P:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.Options
Expand All @@ -98,34 +98,9 @@ body:
- text: PolylineEncodingOptions
url: PolylineAlgorithm.PolylineEncodingOptions.html
- h2: Methods
- api3: CreateCoordinate(double, double)
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2_CreateCoordinate_System_Double_System_Double_
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L202
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.CreateCoordinate(System.Double,System.Double)
commentId: M:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.CreateCoordinate(System.Double,System.Double)
- markdown: Creates a <code class="typeparamref">TCoordinate</code> instance from the specified latitude and longitude values.
- code: protected abstract TCoordinate CreateCoordinate(double latitude, double longitude)
- h4: Parameters
- parameters:
- name: latitude
type:
- text: double
url: https://learn.microsoft.com/dotnet/api/system.double
description: The latitude component of the coordinate, in degrees.
- name: longitude
type:
- text: double
url: https://learn.microsoft.com/dotnet/api/system.double
description: The longitude component of the coordinate, in degrees.
- h4: Returns
- parameters:
- type:
- TCoordinate
description: A <code class="typeparamref">TCoordinate</code> instance representing the specified geographic coordinate.
- api3: Decode(TPolyline, CancellationToken)
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2_Decode__0_System_Threading_CancellationToken_
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L81
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L81
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.Decode(`0,System.Threading.CancellationToken)
commentId: M:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.Decode(`0,System.Threading.CancellationToken)
Expand Down Expand Up @@ -154,7 +129,7 @@ body:
- <
- TCoordinate
- '>'
description: An <xref href="System.Collections.Generic.IEnumerable%601" data-throw-if-not-resolved="false"></xref> of <code class="typeparamref">TCoordinate</code> representing the decoded latitude and longitude pairs.
description: An <xref href="System.Collections.Generic.IEnumerable%601" data-throw-if-not-resolved="false"></xref> of <code class="typeparamref">TCoordinate</code> representing the decoded items.
- h4: Exceptions
- parameters:
- type:
Expand All @@ -175,7 +150,7 @@ body:
description: Thrown when <code class="paramref">cancellationToken</code> is canceled during decoding.
- api3: GetReadOnlyMemory(in TPolyline)
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2_GetReadOnlyMemory__0__
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L187
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L176
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.GetReadOnlyMemory(`0@)
commentId: M:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.GetReadOnlyMemory(`0@)
Expand All @@ -197,9 +172,41 @@ body:
url: https://learn.microsoft.com/dotnet/api/system.char
- '>'
description: A <xref href="System.ReadOnlyMemory%601" data-throw-if-not-resolved="false"></xref> of <xref href="System.Char" data-throw-if-not-resolved="false"></xref> representing the encoded polyline characters.
- api3: Read(PolylineReader)
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2_Read_PolylineAlgorithm_Internal_PolylineReader_
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L195
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.Read(PolylineAlgorithm.Internal.PolylineReader)
commentId: M:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.Read(PolylineAlgorithm.Internal.PolylineReader)
- markdown: Reads field values from the polyline decoding pipeline and constructs one <code class="typeparamref">TCoordinate</code> item.
- code: protected abstract TCoordinate Read(PolylineReader reader)
- h4: Parameters
- parameters:
- name: reader
type:
- text: PolylineReader
url: PolylineAlgorithm.Internal.PolylineReader.html
description: >-
The <xref href="PolylineAlgorithm.Internal.PolylineReader" data-throw-if-not-resolved="false"></xref> cursor provided by the engine. Call <xref href="PolylineAlgorithm.Internal.PolylineReader.Read(System.Int32%40)" data-throw-if-not-resolved="false"></xref>

once for each expected field value, in the same order used by the corresponding encoder's

Write override.
- h4: Returns
- parameters:
- type:
- TCoordinate
description: A <code class="typeparamref">TCoordinate</code> instance constructed from the decoded field values.
- h4: Remarks
- markdown: >-
Implementations must always call <xref href="PolylineAlgorithm.Internal.PolylineReader.Read(System.Int32%40)" data-throw-if-not-resolved="false"></xref> the same number of times,

in the same field order, for every item. The number of reads must match the number of writes

performed by the corresponding encoder's Write override.
- api3: ValidateFormat(ReadOnlyMemory<char>, ILogger?)
id: PolylineAlgorithm_Abstraction_AbstractPolylineDecoder_2_ValidateFormat_System_ReadOnlyMemory_System_Char__Microsoft_Extensions_Logging_ILogger_
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/review-github-templates/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L167
src: https://github.com/petesramek/polyline-algorithm-csharp/blob/copilot/assess-repository-state/src/PolylineAlgorithm/Abstraction/AbstractPolylineDecoder.cs#L156
metadata:
uid: PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.ValidateFormat(System.ReadOnlyMemory{System.Char},Microsoft.Extensions.Logging.ILogger)
commentId: M:PolylineAlgorithm.Abstraction.AbstractPolylineDecoder`2.ValidateFormat(System.ReadOnlyMemory{System.Char},Microsoft.Extensions.Logging.ILogger)
Expand Down Expand Up @@ -230,4 +237,4 @@ body:
description: Thrown when the polyline contains characters outside the valid encoding range or has an invalid block structure.
languageId: csharp
metadata:
description: Provides a base implementation for decoding encoded polyline strings into sequences of geographic coordinates.
description: Provides a base implementation for decoding encoded polyline strings into sequences of items.
Loading
Loading