using System; namespace Jellyfin.Extensions { /// /// Provides extensions methods for . /// public static class StringExtensions { /// /// Counts the number of occurrences of [needle] in the string. /// /// The haystack to search in. /// The character to search for. /// The number of occurrences of the [needle] character. public static int Count(this ReadOnlySpan value, char needle) { var count = 0; var length = value.Length; for (var i = 0; i < length; i++) { if (value[i] == needle) { count++; } } return count; } /// /// Returns the part on the left of the needle. /// /// The string to seek. /// The needle to find. /// The part left of the . public static ReadOnlySpan LeftPart(this ReadOnlySpan haystack, char needle) { var pos = haystack.IndexOf(needle); return pos == -1 ? haystack : haystack[..pos]; } /// /// Returns the part on the right of the needle. /// /// The string to seek. /// The needle to find. /// The part right of the . public static ReadOnlySpan RightPart(this ReadOnlySpan haystack, char needle) { var pos = haystack.LastIndexOf(needle); if (pos == -1) { return haystack; } if (pos == haystack.Length - 1) { return ReadOnlySpan.Empty; } return haystack[(pos + 1)..]; } } }