using System;
using UnityEngine;
namespace Misaki.GraphView
{
///
/// Represents a connection between two connection ports.
///
[Serializable]
public struct SlotConnection : IEquatable
{
[SerializeField]
private SlotData _inputSlotData;
[SerializeField]
private SlotData _outputSlotData;
///
/// Initializes a new instance of the struct.
///
/// The input connection port.
/// The output connection port.
public SlotConnection(SlotData inputSlotData, SlotData outputSlotData)
{
_inputSlotData = inputSlotData;
_outputSlotData = outputSlotData;
}
public SlotData InputSlotData => _inputSlotData;
public SlotData OutputSlotData => _outputSlotData;
public bool Equals(SlotConnection other)
{
return _inputSlotData.Equals(other._inputSlotData) && _outputSlotData.Equals(other._outputSlotData);
}
public override bool Equals(object obj)
{
return obj is SlotConnection other && Equals(other);
}
public override int GetHashCode()
{
return HashCode.Combine(InputSlotData, OutputSlotData);
}
}
}