SR
using FxResources.System.IO.Pipelines;
using System.Resources;
using System.Runtime.CompilerServices;
namespace System
{
    internal static class SR
    {
        private static readonly bool s_usingResourceKeys = GetUsingResourceKeysSwitchValue();
        private static ResourceManager s_resourceManager;
        internal static ResourceManager ResourceManager => s_resourceManager ?? (s_resourceManager = new ResourceManager(typeof(FxResources.System.IO.Pipelines.SR)));
        internal static string AdvanceToInvalidCursor => GetResourceString("AdvanceToInvalidCursor");
        internal static string ArgumentOutOfRange_NeedPosNum => GetResourceString("ArgumentOutOfRange_NeedPosNum");
        internal static string ConcurrentOperationsNotSupported => GetResourceString("ConcurrentOperationsNotSupported");
        internal static string FlushCanceledOnPipeWriter => GetResourceString("FlushCanceledOnPipeWriter");
        internal static string GetResultBeforeCompleted => GetResourceString("GetResultBeforeCompleted");
        internal static string InvalidExaminedOrConsumedPosition => GetResourceString("InvalidExaminedOrConsumedPosition");
        internal static string InvalidExaminedPosition => GetResourceString("InvalidExaminedPosition");
        internal static string InvalidZeroByteRead => GetResourceString("InvalidZeroByteRead");
        internal static string ObjectDisposed_StreamClosed => GetResourceString("ObjectDisposed_StreamClosed");
        internal static string NoReadingOperationToComplete => GetResourceString("NoReadingOperationToComplete");
        internal static string NotSupported_UnreadableStream => GetResourceString("NotSupported_UnreadableStream");
        internal static string NotSupported_UnwritableStream => GetResourceString("NotSupported_UnwritableStream");
        internal static string ReadCanceledOnPipeReader => GetResourceString("ReadCanceledOnPipeReader");
        internal static string ReaderAndWriterHasToBeCompleted => GetResourceString("ReaderAndWriterHasToBeCompleted");
        internal static string ReadingAfterCompleted => GetResourceString("ReadingAfterCompleted");
        internal static string ReadingIsInProgress => GetResourceString("ReadingIsInProgress");
        internal static string WritingAfterCompleted => GetResourceString("WritingAfterCompleted");
        internal static string UnflushedBytesNotSupported => GetResourceString("UnflushedBytesNotSupported");
        private static bool GetUsingResourceKeysSwitchValue()
        {
            if (!AppContext.TryGetSwitch("System.Resources.UseSystemResourceKeys", out bool isEnabled))
                return false;
            return isEnabled;
        }
        internal static bool UsingResourceKeys()
        {
            return s_usingResourceKeys;
        }
        private static string GetResourceString(string resourceKey)
        {
            if (!UsingResourceKeys()) {
                string result = null;
                try {
                    result = ResourceManager.GetString(resourceKey);
                    return result;
                } catch (MissingManifestResourceException) {
                    return result;
                }
            }
            return resourceKey;
        }
        [NullableContext(1)]
        internal static string Format(string resourceFormat, [Nullable(2)] object p1)
        {
            if (UsingResourceKeys()) {
                global::<>y__InlineArray2<object> buffer = default(global::<>y__InlineArray2<object>);
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray2<object>, object>(ref buffer, 0) = resourceFormat;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray2<object>, object>(ref buffer, 1) = p1;
                return string.Join(", ", global::<PrivateImplementationDetails>.InlineArrayAsReadOnlySpan<global::<>y__InlineArray2<object>, object>(ref buffer, 2));
            }
            return string.Format(resourceFormat, p1);
        }
        [NullableContext(1)]
        internal static string Format(string resourceFormat, [Nullable(2)] object p1, [Nullable(2)] object p2)
        {
            if (UsingResourceKeys()) {
                global::<>y__InlineArray3<object> buffer = default(global::<>y__InlineArray3<object>);
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray3<object>, object>(ref buffer, 0) = resourceFormat;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray3<object>, object>(ref buffer, 1) = p1;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray3<object>, object>(ref buffer, 2) = p2;
                return string.Join(", ", global::<PrivateImplementationDetails>.InlineArrayAsReadOnlySpan<global::<>y__InlineArray3<object>, object>(ref buffer, 3));
            }
            return string.Format(resourceFormat, p1, p2);
        }
        [NullableContext(2)]
        [return: Nullable(1)]
        internal static string Format([Nullable(1)] string resourceFormat, object p1, object p2, object p3)
        {
            if (UsingResourceKeys()) {
                global::<>y__InlineArray4<object> buffer = default(global::<>y__InlineArray4<object>);
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 0) = resourceFormat;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 1) = p1;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 2) = p2;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 3) = p3;
                return string.Join(", ", global::<PrivateImplementationDetails>.InlineArrayAsReadOnlySpan<global::<>y__InlineArray4<object>, object>(ref buffer, 4));
            }
            return string.Format(resourceFormat, p1, p2, p3);
        }
        [NullableContext(1)]
        internal static string Format(string resourceFormat, [Nullable(2)] params object[] args)
        {
            if (args != null) {
                if (UsingResourceKeys())
                    return resourceFormat + ", " + string.Join(", ", args);
                return string.Format(resourceFormat, args);
            }
            return resourceFormat;
        }
        [NullableContext(1)]
        internal static string Format([Nullable(2)] IFormatProvider provider, string resourceFormat, [Nullable(2)] object p1)
        {
            if (UsingResourceKeys()) {
                global::<>y__InlineArray2<object> buffer = default(global::<>y__InlineArray2<object>);
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray2<object>, object>(ref buffer, 0) = resourceFormat;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray2<object>, object>(ref buffer, 1) = p1;
                return string.Join(", ", global::<PrivateImplementationDetails>.InlineArrayAsReadOnlySpan<global::<>y__InlineArray2<object>, object>(ref buffer, 2));
            }
            return string.Format(provider, resourceFormat, p1);
        }
        [NullableContext(2)]
        [return: Nullable(1)]
        internal static string Format(IFormatProvider provider, [Nullable(1)] string resourceFormat, object p1, object p2)
        {
            if (UsingResourceKeys()) {
                global::<>y__InlineArray3<object> buffer = default(global::<>y__InlineArray3<object>);
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray3<object>, object>(ref buffer, 0) = resourceFormat;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray3<object>, object>(ref buffer, 1) = p1;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray3<object>, object>(ref buffer, 2) = p2;
                return string.Join(", ", global::<PrivateImplementationDetails>.InlineArrayAsReadOnlySpan<global::<>y__InlineArray3<object>, object>(ref buffer, 3));
            }
            return string.Format(provider, resourceFormat, p1, p2);
        }
        [NullableContext(2)]
        [return: Nullable(1)]
        internal static string Format(IFormatProvider provider, [Nullable(1)] string resourceFormat, object p1, object p2, object p3)
        {
            if (UsingResourceKeys()) {
                global::<>y__InlineArray4<object> buffer = default(global::<>y__InlineArray4<object>);
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 0) = resourceFormat;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 1) = p1;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 2) = p2;
                global::<PrivateImplementationDetails>.InlineArrayElementRef<global::<>y__InlineArray4<object>, object>(ref buffer, 3) = p3;
                return string.Join(", ", global::<PrivateImplementationDetails>.InlineArrayAsReadOnlySpan<global::<>y__InlineArray4<object>, object>(ref buffer, 4));
            }
            return string.Format(provider, resourceFormat, p1, p2, p3);
        }
        [NullableContext(1)]
        internal static string Format([Nullable(2)] IFormatProvider provider, string resourceFormat, [Nullable(2)] params object[] args)
        {
            if (args != null) {
                if (UsingResourceKeys())
                    return resourceFormat + ", " + string.Join(", ", args);
                return string.Format(provider, resourceFormat, args);
            }
            return resourceFormat;
        }
    }
}