using System;
using System.Collections;
using System.Linq;
namespace Unity.VisualScripting
{
public sealed class DictionaryKeyAtIndexMetadata : DictionaryIndexMetadata
{
public DictionaryKeyAtIndexMetadata(int index, Metadata parent) : base(SubpathPrefix, index, parent) { }
protected override object rawValue
{
get
{
return ((IDictionary)parent.value).Keys.Cast<object>().ElementAt(index);
}
set
{
throw new InvalidOperationException();
}
}
protected override Type GetDefinedType(Type dictionaryType)
{
return TypeUtility.GetDictionaryKeyType(dictionaryType, true);
}
public const string SubpathPrefix = "__keyAt.";
}
}