Renamed to QR Script
- Split into three projects: Library, Console, and Tests - Library compiles as QRScript.Interpreter to avoid conflicts
This commit is contained in:
parent
e681e6144c
commit
6501b72973
16 changed files with 82 additions and 20 deletions
56
QRScript/StringExtensions.cs
Normal file
56
QRScript/StringExtensions.cs
Normal file
|
@ -0,0 +1,56 @@
|
|||
namespace QRScript.Extensions;
|
||||
|
||||
using System.Text;
|
||||
|
||||
/// <summary>
|
||||
/// Provides extension methods for common string transformations and validations.
|
||||
/// </summary>
|
||||
public static class StringExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Encodes the current string instance to Base64 using Unicode encoding.
|
||||
/// </summary>
|
||||
/// <param name="input">The input string to encode.</param>
|
||||
/// <returns>A Base64-encoded version of the input string.</returns>
|
||||
/// <remarks>
|
||||
/// This uses Unicode (UTF-16) encoding, which is standard in .NET strings.
|
||||
/// </remarks>
|
||||
public static string ToBase64(this string input)
|
||||
{
|
||||
if (input is null)
|
||||
throw new ArgumentNullException(nameof(input));
|
||||
|
||||
byte[] bytes = Encoding.Unicode.GetBytes(input);
|
||||
return Convert.ToBase64String(bytes);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Joins an array of strings into a single string separated by the system's newline.
|
||||
/// </summary>
|
||||
/// <param name="lines">Array of strings to join.</param>
|
||||
/// <returns>A single string composed of all input lines, separated by newlines.</returns>
|
||||
public static string JoinLines(this IEnumerable<string> lines)
|
||||
{
|
||||
if (lines is null)
|
||||
throw new ArgumentNullException(nameof(lines));
|
||||
|
||||
return string.Join(Environment.NewLine, lines);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether the string exceeds the specified character length limit.
|
||||
/// </summary>
|
||||
/// <param name="text">The input string to evaluate.</param>
|
||||
/// <param name="limit">The maximum number of allowed characters.</param>
|
||||
/// <returns><c>true</c> if the string's length is greater than or equal to <paramref name="limit"/>; otherwise, <c>false</c>.</returns>
|
||||
public static bool ExceedsLengthLimit(this string text, int limit)
|
||||
{
|
||||
if (text is null)
|
||||
throw new ArgumentNullException(nameof(text));
|
||||
|
||||
if (limit < 0)
|
||||
throw new ArgumentOutOfRangeException(nameof(limit), "Limit must be non-negative.");
|
||||
|
||||
return text.Length >= limit;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue