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; } } }