namespace Flow.Launcher.Plugin
{
///
/// Plugin instance and plugin metadata
///
public class PluginPair
{
///
/// Plugin instance
///
public IAsyncPlugin Plugin { get; internal set; }
///
/// Plugin metadata
///
public PluginMetadata Metadata { get; internal set; }
///
/// Convert to string
///
///
public override string ToString()
{
return Metadata.Name;
}
///
/// Compare by plugin metadata ID
///
///
///
public override bool Equals(object obj)
{
if (obj is PluginPair r)
{
return string.Equals(r.Metadata.ID, Metadata.ID);
}
else
{
return false;
}
}
///
/// Get hash code
///
///
public override int GetHashCode()
{
var hashcode = Metadata.ID?.GetHashCode() ?? 0;
return hashcode;
}
}
}