/// <inheritdoc />
        public Task WriteAsync(
            Stream output,
            EnvironmentInfo environmentInfo,
            CancellationToken cancellationToken = default)
        {
            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            var serializer = new EnvironmentInfoSerializer();

            using (var stringWriter = new StreamWriter(output, _options.Encoding))
            {
                using (var textWriter = new EnvInfoTextWriter(stringWriter, _options.Separator, _options.Padding))
                {
                    serializer.Serialize(textWriter, environmentInfo);
                }
            }

#if NETSTANDARD1_6
            return(Task.CompletedTask);
#else
            return(AppMetricsTaskHelper.CompletedTask());
#endif
        }
        /// <inheritdoc />
        public async Task WriteAsync(
            Stream output,
            EnvironmentInfo environmentInfo,
            CancellationToken cancellationToken = default)
        {
            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            var serializer = new EnvironmentInfoSerializer();

#if NETSTANDARD2_1
            await using (var stringWriter = new StreamWriter(output, _options.Encoding))
#else
            using (var stringWriter = new StreamWriter(output, _options.Encoding))
#endif
            {
#if NETSTANDARD2_1
                await using (var textWriter = new EnvInfoTextWriter(stringWriter, _options.Separator, _options.Padding))
#else
                using (var textWriter = new EnvInfoTextWriter(stringWriter, _options.Separator, _options.Padding))
#endif
                {
                    await serializer.Serialize(textWriter, environmentInfo);
                }
            }
        }