コード例 #1
0
        public string BuildFilenameWithStringCreate(DataContext dataContext)
        {
            var length = DateFormat.Length +
                         dataContext.Title.Length + 1 + // includes separator
                         dataContext.Key.Length +
                         Suffix.Length;

            return(string.Create(length, dataContext, (span, state) =>
            {
                var position = 0;

                state.EventDateUtc.TryFormat(span, out var bytesWritten, DateFormatSpan, CultureInfo.InvariantCulture);
                position += bytesWritten;

                MemoryExtensions.ToUpperInvariant(state.Title, span.Slice(position));
                position += state.Title.Length;

                span[position++] = Separator;

                state.Key.AsSpan().CopyTo(span.Slice(position));
                position += state.Key.Length;

                SuffixSpan.CopyTo(span.Slice(position));
            }));
コード例 #2
0
        public static IEnumerable <object[]> MemoryExtensionsToUpperLowerOverlapping()
        {
            // full overlap, overlap in the middle, overlap at start, overlap at the end

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLower(buffer, null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLower(buffer.Slice(1, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLower(buffer.Slice(0, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLower(buffer.Slice(2, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLower(buffer, buffer, null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLower(buffer, buffer.Slice(1, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLower(buffer, buffer.Slice(0, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLower(buffer, buffer.Slice(2, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLowerInvariant(buffer) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLowerInvariant(buffer.Slice(1, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLowerInvariant(buffer.Slice(0, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToLowerInvariant(buffer.Slice(2, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLowerInvariant(buffer, buffer) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLowerInvariant(buffer, buffer.Slice(1, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLowerInvariant(buffer, buffer.Slice(0, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToLowerInvariant(buffer, buffer.Slice(2, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpper(buffer, null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpper(buffer.Slice(1, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpper(buffer.Slice(0, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpper(buffer.Slice(2, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpper(buffer, buffer, null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpper(buffer, buffer.Slice(1, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpper(buffer, buffer.Slice(0, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpper(buffer, buffer.Slice(2, 1), null) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpperInvariant(buffer) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpperInvariant(buffer.Slice(1, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpperInvariant(buffer.Slice(0, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => ((ReadOnlySpan <char>)buffer).ToUpperInvariant(buffer.Slice(2, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpperInvariant(buffer, buffer) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpperInvariant(buffer, buffer.Slice(1, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpperInvariant(buffer, buffer.Slice(0, 1)) });

            yield return(new TestHelpers.AssertThrowsAction <char>[] { (Span <char> buffer) => MemoryExtensions.ToUpperInvariant(buffer, buffer.Slice(2, 1)) });
        }