using System;
using UnityEngine;

namespace mgaia.Utils
{
    /// <summary>
    /// Struct que representa um tempo e um valor genérico
    /// </summary>
    /// <owner>Victor</owner>
    [Serializable]
    public struct TimeAndValue<T> where T : struct
    {
        [SerializeField]
        private float _time;

        [SerializeField]
        private T _value;

        public TimeAndValue(float time, T value)
        {
            _time = time;
            _value = value;
        }

        /// <summary>
        /// Tempo em que o valor genérico está relacionado
        /// </summary>
        public float Time
        {
            get { return _time; }
        }
        
        /// <summary>
        /// Valor genérico que precisa ser aplicado nesse tempo
        /// </summary>
        public T Value
        {
            get { return _value; }
        }
    }
}