using System;
using System.Linq;
namespace MediaBrowser.Model.Session
{
///
/// Extension methods for serializing TranscodeReason.
///
public static class TranscodeReasonExtensions
{
private static readonly TranscodeReason[] _values = Enum.GetValues();
///
/// Serializes a TranscodeReason into a delimiter-separated string.
///
/// The enumeration.
/// The string separator to use. defualt ,.
/// string of transcode reasons delimited.
public static string Serialize(this TranscodeReason reasons, string sep = ",")
{
return string.Join(sep, reasons.ToArray());
}
///
/// Serializes a TranscodeReason into an array of individual TranscodeReason bits.
///
/// The enumeration.
/// Array of TranscodeReason.
public static TranscodeReason[] ToArray(this TranscodeReason reasons)
{
return _values.Where(r => r != 0 && reasons.HasFlag(r)).ToArray();
}
}
}