Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions src/PolylineAlgorithm/Abstraction/IPolylineDecoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@
using System.Threading;

/// <summary>
/// Defines a contract for decoding an encoded polyline into a sequence of geographic coordinates.
/// Defines a contract for decoding an encoded polyline into a sequence of values.
/// </summary>
/// <typeparam name="TPolyline">
/// The type that represents the encoded polyline input. Common implementations use <see cref="string"/>,
/// but custom wrapper types are allowed to carry additional metadata.
/// </typeparam>
/// <typeparam name="TValue">
/// The coordinate type returned by the decoder. Typical implementations return a struct or class that
/// The value type returned by the decoder. Typical implementations return a struct or class that
/// contains latitude and longitude (for example a <c>LatLng</c> type or a <c>ValueTuple&lt;double,double&gt;</c>).
/// </typeparam>
public interface IPolylineDecoder<TPolyline, TValue> {

Check warning on line 22 in src/PolylineAlgorithm/Abstraction/IPolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Compile source code

Symbol 'PolylineAlgorithm.Abstraction.IPolylineDecoder<TPolyline, TValue>' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)

Check warning on line 22 in src/PolylineAlgorithm/Abstraction/IPolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Run tests

Symbol 'PolylineAlgorithm.Abstraction.IPolylineDecoder<TPolyline, TValue>' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
/// <summary>
/// Decodes the specified encoded polyline into an ordered sequence of geographic coordinates.
/// Decodes the specified encoded polyline into an ordered sequence of values.
/// The sequence preserves the original vertex order encoded by the <paramref name="polyline"/>.
/// </summary>
/// <param name="polyline">
Expand All @@ -35,7 +35,7 @@
/// </param>
/// <returns>
/// An <see cref="IEnumerable{T}"/> of <typeparamref name="TValue"/> representing the decoded
/// latitude/longitude pairs (or equivalent coordinates) in the same order they were encoded.
/// latitude/longitude pairs (or equivalent values) in the same order they were encoded.
/// </returns>
/// <remarks>
/// Implementations commonly follow the Google Encoded Polyline Algorithm Format, but this interface
Expand All @@ -45,4 +45,4 @@
/// <exception cref="OperationCanceledException">
/// Thrown when the provided <paramref name="cancellationToken"/> requests cancellation.
/// </exception>
IEnumerable<TValue> Decode(TPolyline polyline, PolylineDecodingOptions<TValue>? options = null, CancellationToken cancellationToken = default);

Check warning on line 48 in src/PolylineAlgorithm/Abstraction/IPolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Compile source code

Parameter 'options' has no matching param tag in the XML comment for 'IPolylineDecoder<TPolyline, TValue>.Decode(TPolyline, PolylineDecodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 48 in src/PolylineAlgorithm/Abstraction/IPolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Package binaries

Parameter 'options' has no matching param tag in the XML comment for 'IPolylineDecoder<TPolyline, TValue>.Decode(TPolyline, PolylineDecodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 48 in src/PolylineAlgorithm/Abstraction/IPolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Run tests

Parameter 'options' has no matching param tag in the XML comment for 'IPolylineDecoder<TPolyline, TValue>.Decode(TPolyline, PolylineDecodingOptions<TValue>?, CancellationToken)' (but other parameters do)
Expand Down
28 changes: 14 additions & 14 deletions src/PolylineAlgorithm/Abstraction/IPolylineEncoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

namespace PolylineAlgorithm.Abstraction;
/// <summary>
/// Contract for encoding a sequence of geographic coordinates into an encoded polyline representation.
/// Contract for encoding a sequence of values into an encoded polyline representation.
/// Implementations interpret the generic <typeparamref name="TValue"/> type and produce an encoded
/// representation of those coordinates as <typeparamref name="TPolyline"/>.
/// representation of those values as <typeparamref name="TPolyline"/>.
/// </summary>
/// <typeparam name="TValue">
/// The concrete coordinate representation used by the encoder (for example a struct or class containing
/// The concrete value representation used by the encoder (for example a struct or class containing
/// <c>Latitude</c> and <c>Longitude</c> values). Implementations must document the expected shape,
/// units (typically decimal degrees), and any required fields for <typeparamref name="TValue"/>.
/// Common shapes:
Expand All @@ -27,16 +27,16 @@
/// - This interface is intentionally minimal to allow different encoding strategies (Google encoded polyline,
/// precision/scale variants, or custom compressed formats) to be expressed behind a common contract.
/// - Implementations should document:
/// - Coordinate precision and rounding rules (for example 1e-5 for 5-decimal precision).
/// - Coordinate ordering and whether altitude or additional dimensions are supported.
/// - Value precision and rounding rules (for example 1e-5 for 5-decimal precision).
/// - Value ordering and whether altitude or additional dimensions are supported.
/// - Thread-safety guarantees: whether instances are safe to reuse concurrently or must be instantiated per-call.
/// - Implementations are encouraged to be memory-efficient; the API accepts a <see cref="ReadOnlySpan{T}"/>
/// to avoid forced allocations when callers already have contiguous memory.
/// </remarks>
public interface IPolylineEncoder<TValue, TPolyline> {

Check warning on line 36 in src/PolylineAlgorithm/Abstraction/IPolylineEncoder.cs

View workflow job for this annotation

GitHub Actions / Package binaries

Symbol 'PolylineAlgorithm.Abstraction.IPolylineEncoder<TValue, TPolyline>' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)

Check warning on line 36 in src/PolylineAlgorithm/Abstraction/IPolylineEncoder.cs

View workflow job for this annotation

GitHub Actions / Run tests

Symbol 'PolylineAlgorithm.Abstraction.IPolylineEncoder<TValue, TPolyline>' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
/// <summary>
/// Encodes a sequence of geographic coordinates into an encoded polyline representation.
/// The order of coordinates in <paramref name="coordinates"/> is preserved in the encoded result.
/// Encodes a sequence of values into an encoded polyline representation.
/// The order of values in <paramref name="coordinates"/> is preserved in the encoded result.
/// </summary>
/// <param name="coordinates">
/// The collection of <typeparamref name="TValue"/> instances to encode into a polyline.
Expand All @@ -49,28 +49,28 @@
/// when cancellation is requested. For fast, in-memory encoders cancellation may be best-effort.
/// </param>
/// <returns>
/// A <typeparamref name="TPolyline"/> containing the encoded polyline that represents the input coordinates.
/// A <typeparamref name="TPolyline"/> containing the encoded polyline that represents the input values.
/// The exact format and any delimiting/terminating characters are implementation-specific and must be
/// documented by concrete encoder types.
/// </returns>
/// <example>
/// <code>
/// // Example pseudocode for typical usage with a string-based encoder:
/// var coords = new[] {
/// new Coordinate { Latitude = 47.6219, Longitude = -122.3503 },
/// new Coordinate { Latitude = 47.6220, Longitude = -122.3504 }
/// var values = new[] {
/// new Value { Latitude = 47.6219, Longitude = -122.3503 },
/// new Value { Latitude = 47.6220, Longitude = -122.3504 }
/// };
/// IPolylineEncoder&lt;Coordinate,string&gt; encoder = new GoogleEncodedPolylineEncoder();
/// string encoded = encoder.Encode(coords, CancellationToken.None);
/// IPolylineEncoder&lt;Value,string&gt; encoder = new GoogleEncodedPolylineEncoder();
/// string encoded = encoder.Encode(values, CancellationToken.None);
/// </code>
/// </example>
/// <remarks>
/// - Implementations should validate input as appropriate and document any preconditions (for example
/// if coordinates must be within [-90,90] latitude and [-180,180] longitude).
/// if values must be within [-90,90] latitude and [-180,180] longitude).
/// - For large input sequences, implementations may provide streaming or incremental encoders; those
/// variants can still implement this interface by materializing the final encoded result.
/// </remarks>
/// <exception cref="System.OperationCanceledException">
/// Thrown if the operation is canceled via <paramref name="cancellationToken"/>.
/// </exception>
TPolyline Encode(ReadOnlySpan<TValue> coordinates, PolylineEncodingOptions<TValue>? options = null, CancellationToken cancellationToken = default);

Check warning on line 76 in src/PolylineAlgorithm/Abstraction/IPolylineEncoder.cs

View workflow job for this annotation

GitHub Actions / Compile source code

Parameter 'options' has no matching param tag in the XML comment for 'IPolylineEncoder<TValue, TPolyline>.Encode(ReadOnlySpan<TValue>, PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 76 in src/PolylineAlgorithm/Abstraction/IPolylineEncoder.cs

View workflow job for this annotation

GitHub Actions / Package binaries

Parameter 'options' has no matching param tag in the XML comment for 'IPolylineEncoder<TValue, TPolyline>.Encode(ReadOnlySpan<TValue>, PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 76 in src/PolylineAlgorithm/Abstraction/IPolylineEncoder.cs

View workflow job for this annotation

GitHub Actions / Run tests

Parameter 'options' has no matching param tag in the XML comment for 'IPolylineEncoder<TValue, TPolyline>.Encode(ReadOnlySpan<TValue>, PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)
Expand Down
2 changes: 1 addition & 1 deletion src/PolylineAlgorithm/Abstraction/IPolylineFormatter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@
/// produce a <typeparamref name="TPolyline"/> from an encoded character buffer, and extract that buffer
/// back from a <typeparamref name="TPolyline"/>.
/// </summary>
/// <typeparam name="TValue">The coordinate or item type. For example a struct with Latitude/Longitude.</typeparam>
/// <typeparam name="TValue">The value or item type. For example a struct with Latitude/Longitude.</typeparam>
/// <typeparam name="TPolyline">The polyline surface type. For example <see cref="string"/> or
/// <see cref="ReadOnlyMemory{T}"/> of <see cref="char"/>.</typeparam>
/// <remarks>
/// Use <see cref="FormatterBuilder{TValue, TPolyline}"/> to build a
/// <see cref="PolylineFormatter{TValue, TPolyline}"/> that implements this interface.
/// </remarks>
public interface IPolylineFormatter<TValue, TPolyline> {

Check warning on line 23 in src/PolylineAlgorithm/Abstraction/IPolylineFormatter.cs

View workflow job for this annotation

GitHub Actions / Compile source code

Symbol 'PolylineAlgorithm.Abstraction.IPolylineFormatter<TValue, TPolyline>' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)

Check warning on line 23 in src/PolylineAlgorithm/Abstraction/IPolylineFormatter.cs

View workflow job for this annotation

GitHub Actions / Package binaries

Symbol 'PolylineAlgorithm.Abstraction.IPolylineFormatter<TValue, TPolyline>' is not part of the declared public API (https://github.com/dotnet/roslyn/blob/main/src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md)
/// <summary>
/// Gets the number of values (columns) per encoded item.
/// This is the required length of the <see cref="Span{T}"/> passed to <see cref="GetValues"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
using System;

/// <summary>
/// Provides extension methods for the <see cref="IPolylineEncoder{TValue, TPolyline}"/> interface to facilitate encoding geographic coordinates into polylines.
/// Provides extension methods for the <see cref="IPolylineEncoder{TValue, TPolyline}"/> interface to facilitate encoding values into polylines.
/// </summary>
public static class PolylineEncoderExtensions {
/// <summary>
/// Encodes an array of <typeparamref name="TValue"/> instances into an encoded polyline.
/// </summary>
/// <typeparam name="TValue">The type that represents a geographic coordinate to encode.</typeparam>
/// <typeparam name="TValue">The type that represents a value to encode.</typeparam>
/// <typeparam name="TPolyline">The type that represents the encoded polyline output.</typeparam>
/// <param name="encoder">
/// The <see cref="IPolylineEncoder{TValue, TPolyline}"/> instance used to perform the encoding operation.
Expand All @@ -25,7 +25,7 @@
/// The array of <typeparamref name="TValue"/> objects to encode.
/// </param>
/// <returns>
/// A <typeparamref name="TPolyline"/> instance representing the encoded polyline for the provided coordinates.
/// A <typeparamref name="TPolyline"/> instance representing the encoded polyline for the provided values.
/// </returns>
/// <exception cref="ArgumentNullException">
/// Thrown when <paramref name="encoder"/> or <paramref name="values"/> is <see langword="null"/>.
Expand All @@ -33,8 +33,8 @@
public static TPolyline Encode<TValue, TPolyline>(
this IPolylineEncoder<TValue, TPolyline> encoder,
TValue[] values,
PolylineEncodingOptions<TValue>? options = null,

Check warning on line 36 in src/PolylineAlgorithm/Extensions/PolylineEncoderExtensions.cs

View workflow job for this annotation

GitHub Actions / Compile source code

Parameter 'options' has no matching param tag in the XML comment for 'PolylineEncoderExtensions.Encode<TValue, TPolyline>(IPolylineEncoder<TValue, TPolyline>, TValue[], PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 36 in src/PolylineAlgorithm/Extensions/PolylineEncoderExtensions.cs

View workflow job for this annotation

GitHub Actions / Package binaries

Parameter 'options' has no matching param tag in the XML comment for 'PolylineEncoderExtensions.Encode<TValue, TPolyline>(IPolylineEncoder<TValue, TPolyline>, TValue[], PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 36 in src/PolylineAlgorithm/Extensions/PolylineEncoderExtensions.cs

View workflow job for this annotation

GitHub Actions / Run tests

Parameter 'options' has no matching param tag in the XML comment for 'PolylineEncoderExtensions.Encode<TValue, TPolyline>(IPolylineEncoder<TValue, TPolyline>, TValue[], PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)
CancellationToken cancellationToken = default) {

Check warning on line 37 in src/PolylineAlgorithm/Extensions/PolylineEncoderExtensions.cs

View workflow job for this annotation

GitHub Actions / Compile source code

Parameter 'cancellationToken' has no matching param tag in the XML comment for 'PolylineEncoderExtensions.Encode<TValue, TPolyline>(IPolylineEncoder<TValue, TPolyline>, TValue[], PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 37 in src/PolylineAlgorithm/Extensions/PolylineEncoderExtensions.cs

View workflow job for this annotation

GitHub Actions / Package binaries

Parameter 'cancellationToken' has no matching param tag in the XML comment for 'PolylineEncoderExtensions.Encode<TValue, TPolyline>(IPolylineEncoder<TValue, TPolyline>, TValue[], PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)

Check warning on line 37 in src/PolylineAlgorithm/Extensions/PolylineEncoderExtensions.cs

View workflow job for this annotation

GitHub Actions / Run tests

Parameter 'cancellationToken' has no matching param tag in the XML comment for 'PolylineEncoderExtensions.Encode<TValue, TPolyline>(IPolylineEncoder<TValue, TPolyline>, TValue[], PolylineEncodingOptions<TValue>?, CancellationToken)' (but other parameters do)
if (encoder is null) {
ExceptionGuard.ThrowArgumentNull(nameof(encoder));
}
Expand Down
2 changes: 1 addition & 1 deletion src/PolylineAlgorithm/FormatterBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace PolylineAlgorithm;
/// <summary>
/// Provides a fluent builder for constructing a <see cref="PolylineFormatter{TValue, TPolyline}"/>.
/// </summary>
/// <typeparam name="TValue">The coordinate or item type from which column values are extracted.</typeparam>
/// <typeparam name="TValue">The value or item type from which column values are extracted.</typeparam>
/// <typeparam name="TPolyline">The polyline surface type produced and consumed by the formatter.</typeparam>
/// <remarks>
/// <para>
Expand Down
6 changes: 3 additions & 3 deletions src/PolylineAlgorithm/Internal/Defaults.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace PolylineAlgorithm.Internal;
/// Provides default values and constants used throughout the Polyline Algorithm.
/// </summary>
/// <remarks>
/// Organizes defaults for algorithm parameters, polyline encoding, and geographic coordinates into nested static classes.
/// Organizes defaults for algorithm parameters, polyline encoding, and geographic values into nested static classes.
/// </remarks>
[ExcludeFromCodeCoverage]
internal static class Defaults {
Expand Down Expand Up @@ -51,9 +51,9 @@ internal static class Algorithm {
}

/// <summary>
/// Contains default values and constants for geographic coordinate validation.
/// Contains default values and constants for geographic value validation.
/// </summary>
internal static class Coordinate {
internal static class Value {
/// <summary>
/// Provides constants representing latitude values, including the default, minimum, and maximum valid values.
/// </summary>
Expand Down
14 changes: 7 additions & 7 deletions src/PolylineAlgorithm/Internal/Diagnostics/ExceptionGuard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,20 +70,20 @@ internal static void ThrowBufferOverflow(string message) {
}

/// <summary>
/// Throws an <see cref="ArgumentOutOfRangeException"/> when a coordinate value is outside the allowed range.
/// Throws an <see cref="ArgumentOutOfRangeException"/> when a value is outside the allowed range.
/// </summary>
/// <param name="value">The coordinate value that was out of range.</param>
/// <param name="value">The value that was out of range.</param>
/// <param name="min">Inclusive minimum allowed value.</param>
/// <param name="max">Inclusive maximum allowed value.</param>
/// <param name="paramName">Name of the parameter containing the coordinate.</param>
/// <param name="paramName">Name of the parameter containing the value.</param>
#if NET6_0_OR_GREATER
[StackTraceHidden]
#else
[MethodImpl(MethodImplOptions.NoInlining)]
#endif
[DoesNotReturn]
internal static void ThrowCoordinateValueOutOfRange(double value, double min, double max, string paramName) {
throw new ArgumentOutOfRangeException(paramName, ExceptionMessage.FormatCoordinateValueMustBeBetween(paramName, min, max));
internal static void ThrowValueOutOfRange(double value, double min, double max, string paramName) {
throw new ArgumentOutOfRangeException(paramName, ExceptionMessage.FormatValueMustBeBetween(paramName, min, max));
}

/// <summary>
Expand Down Expand Up @@ -269,9 +269,9 @@ internal static string FormatMalformedPolyline(long position) =>
string.Format(CultureInfo.InvariantCulture, PolylineIsMalformedAtFormat, position);

/// <summary>
/// Formats a message indicating a coordinate parameter must be within a range.
/// Formats a message indicating a value parameter must be within a range.
/// </summary>
internal static string FormatCoordinateValueMustBeBetween(string name, double min, double max) =>
internal static string FormatValueMustBeBetween(string name, double min, double max) =>
string.Format(CultureInfo.InvariantCulture, CoordinateValueMustBeBetweenFormat, name, min, max);

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ internal static partial class LogDebugExtensions {
internal static partial void LogOperationFinishedDebug(this ILogger logger, string operationName);

/// <summary>
/// Logs a debug message containing the decoded coordinate values and position.
/// Logs a debug message containing the decoded values and position.
/// </summary>
/// <param name="logger">The <see cref="ILogger"/> used to write the log entry.</param>
/// <param name="latitude">The decoded latitude value.</param>
/// <param name="longitude">The decoded longitude value.</param>
/// <param name="position">The position in the polyline buffer at which the coordinate was decoded.</param>
[LoggerMessage(EVENT_ID_BASE + 4, LOG_LEVEL, "Decoded coordinate: (Latitude: {latitude}, Longitude: {longitude}) at position {position}.")]
/// <param name="position">The position in the polyline buffer at which the value was decoded.</param>
[LoggerMessage(EVENT_ID_BASE + 4, LOG_LEVEL, "Decoded value: (Latitude: {latitude}, Longitude: {longitude}) at position {position}.")]
internal static partial void LogDecodedCoordinateDebug(this ILogger logger, double latitude, double longitude, int position);
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ internal static partial class LogWarningExtensions {
/// </summary>
/// <param name="logger">The <see cref="ILogger"/> used to write the log entry.</param>
/// <param name="position">The buffer position where the write was attempted.</param>
/// <param name="coordinateIndex">The index of the current coordinate that prevented the write.</param>
[LoggerMessage(EVENT_ID_BASE + 4, LOG_LEVEL, "Cannot write to internal buffer at position {position}. Current coordinate is at index {coordinateIndex}.")]
internal static partial void LogCannotWriteValueToBufferWarning(this ILogger logger, int position, int coordinateIndex);
/// <param name="valueIndex">The index of the current value that prevented the write.</param>
[LoggerMessage(EVENT_ID_BASE + 4, LOG_LEVEL, "Cannot write to internal buffer at position {position}. Current value is at index {valueIndex}.")]
internal static partial void LogCannotWriteValueToBufferWarning(this ILogger logger, int position, int valueIndex);

/// <summary>
/// Logs a warning when a polyline is shorter than the minimal required length.
Expand Down
6 changes: 3 additions & 3 deletions src/PolylineAlgorithm/PolylineDecoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
using System.Threading;

/// <summary>
/// Decodes encoded polyline representations into sequences of geographic coordinates.
/// Decodes encoded polyline representations into sequences of values.
/// </summary>
/// <typeparam name="TPolyline">The type that represents the encoded polyline input.</typeparam>
/// <typeparam name="TValue">The type that represents a decoded geographic coordinate.</typeparam>
/// <typeparam name="TValue">The type that represents a decoded value.</typeparam>
/// <remarks>
/// Pass a <see cref="PolylineOptions{TValue, TPolyline}"/> that carries a
/// <see cref="IPolylineFormatter{TValue, TPolyline}"/> to the constructor. The formatter handles
Expand Down Expand Up @@ -59,12 +59,12 @@
/// Per-call options that control the accumulated-delta seed. Pass <see langword="null"/> or an
/// instance with <see cref="PolylineDecodingOptions{TValue}.Previous"/> set to
/// <see langword="null"/> to start from zero (same as calling
/// <see cref="Decode(TPolyline, CancellationToken)"/>).

Check warning on line 62 in src/PolylineAlgorithm/PolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Compile source code

XML comment has cref attribute 'Decode(TPolyline, CancellationToken)' that could not be resolved

Check warning on line 62 in src/PolylineAlgorithm/PolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Package binaries

XML comment has cref attribute 'Decode(TPolyline, CancellationToken)' that could not be resolved

Check warning on line 62 in src/PolylineAlgorithm/PolylineDecoder.cs

View workflow job for this annotation

GitHub Actions / Run tests

XML comment has cref attribute 'Decode(TPolyline, CancellationToken)' that could not be resolved
/// </param>
/// <param name="cancellationToken">A token that can be used to cancel the operation.</param>
/// <returns>
/// An <see cref="IEnumerable{T}"/> of <typeparamref name="TValue"/> representing the decoded
/// coordinates.
/// values.
/// </returns>
/// <exception cref="ArgumentNullException">
/// Thrown when <paramref name="polyline"/> is <see langword="null"/>.
Expand Down
12 changes: 6 additions & 6 deletions src/PolylineAlgorithm/PolylineEncoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ namespace PolylineAlgorithm;
using System.Threading;

/// <summary>
/// Encodes sequences of geographic coordinates into encoded polyline representations.
/// Encodes sequences of values into encoded polyline representations.
/// </summary>
/// <typeparam name="TValue">The type that represents a geographic coordinate to encode.</typeparam>
/// <typeparam name="TValue">The type that represents a value to encode.</typeparam>
/// <typeparam name="TPolyline">The type that represents the encoded polyline output.</typeparam>
/// <remarks>
/// Pass a <see cref="PolylineOptions{TValue, TPolyline}"/> that carries a
Expand Down Expand Up @@ -55,10 +55,10 @@ public PolylineEncoder(PolylineOptions<TValue, TPolyline> options) {
/// Encodes a collection of <typeparamref name="TValue"/> instances into an encoded
/// <typeparamref name="TPolyline"/>.
/// </summary>
/// <param name="coordinates">The collection of coordinates to encode.</param>
/// <param name="coordinates">The collection of values to encode.</param>
/// <param name="cancellationToken">A token that can be used to cancel the operation.</param>
/// <returns>
/// An instance of <typeparamref name="TPolyline"/> representing the encoded coordinates.
/// An instance of <typeparamref name="TPolyline"/> representing the encoded values.
/// </returns>
/// <exception cref="ArgumentException">
/// Thrown when <paramref name="coordinates"/> is empty.
Expand Down Expand Up @@ -135,7 +135,7 @@ public TPolyline Encode(ReadOnlySpan<TValue> coordinates, CancellationToken canc
/// delta baseline. Use this overload to encode large sequences in independent chunks that can be
/// concatenated into a single valid polyline.
/// </summary>
/// <param name="coordinates">The collection of coordinates to encode.</param>
/// <param name="coordinates">The collection of values to encode.</param>
/// <param name="options">
/// Per-call options that control the starting delta baseline. Pass <see langword="null"/> or an
/// instance with <see cref="PolylineEncodingOptions{TValue}.Previous"/> set to
Expand All @@ -144,7 +144,7 @@ public TPolyline Encode(ReadOnlySpan<TValue> coordinates, CancellationToken canc
/// </param>
/// <param name="cancellationToken">A token that can be used to cancel the operation.</param>
/// <returns>
/// An instance of <typeparamref name="TPolyline"/> representing the encoded coordinates.
/// An instance of <typeparamref name="TPolyline"/> representing the encoded values.
/// </returns>
/// <exception cref="ArgumentException">
/// Thrown when <paramref name="coordinates"/> is empty.
Expand Down
Loading
Loading