using System; using System.Collections; using System.Collections.Generic; using JetBrains.Annotations; namespace RoR2.ContentManagement; public readonly struct ReadOnlyNamedAssetCollection : IEnumerable, IEnumerable, IEquatable> { private readonly NamedAssetCollection src; public int Length => src.Length; public ReadOnlyNamedAssetCollection(NamedAssetCollection src) { this.src = src; } public TAsset Find(string assetName) { return src.Find(assetName); } public bool Find(string assetName, out object result) { return src.Find(assetName, out result); } public string GetAssetName(TAsset asset) { return src.GetAssetName(asset); } public bool Contains([NotNull] TAsset asset) { return src.Contains(asset); } public static void Copy(ReadOnlyNamedAssetCollection src, NamedAssetCollection dest) { NamedAssetCollection.Copy(src.src, dest); } public void CopyTo(NamedAssetCollection dest) { src.CopyTo(dest); } public override bool Equals(object obj) { if (obj is NamedAssetCollection namedAssetCollection) { return Equals(namedAssetCollection); } return false; } public override int GetHashCode() { return src.GetHashCode(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public NamedAssetCollection.AssetEnumerator GetEnumerator() { return src.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public bool Equals(ReadOnlyNamedAssetCollection other) { return src.Equals(other.src); } public static implicit operator ReadOnlyNamedAssetCollection(NamedAssetCollection src) { return new ReadOnlyNamedAssetCollection(src); } }