Exemple #1
0
 public void Write <T>(MutagenWriter writer, IEDIDLink <T> item)
     where T : class, IMajorRecordCommonGetter
 {
     this.Write(
         writer,
         item.EDID);
 }
 public void Write <T>(
     MutagenWriter writer,
     IEDIDLink <T> item,
     MasterReferenceReader masterReferences)
     where T : class, IMajorRecordCommonGetter
 {
     this.Write(
         writer,
         item,
         masterReferences);
 }
Exemple #3
0
 public void Write <M, T>(
     MutagenWriter writer,
     IEDIDLink <T> item,
     RecordType header)
     where T : class, IMajorRecordCommonGetter
 {
     this.Write(
         writer,
         item.EDID,
         header);
 }
 public bool Parse <T>(
     XElement node,
     out IEDIDLink <T> item,
     ErrorMaskBuilder?errorMask,
     TranslationCrystal?translationMask)
     where T : class, IMajorRecordCommonGetter
 {
     return(this.Parse(
                node: node,
                item: out item,
                errorMask: errorMask));
 }
 public bool Parse <T>(
     XElement node,
     out IEDIDLink <T> item,
     ErrorMaskBuilder?errorMask)
     where T : class, IMajorRecordCommonGetter
 {
     if (Parse(node, out RecordType id, errorMask))
     {
         item = new EDIDLink <T>(id);
         return(true);
     }
     item = new EDIDLink <T>();
     return(false);
 }
Exemple #6
0
        public bool Parse <T>(
            MutagenFrame frame,
            out IEDIDLink <T> item,
            RecordTypeConverter?recordTypeConverter = null)
            where T : class, IMajorRecordCommonGetter
        {
            if (!frame.TryCheckUpcomingRead(4, out var ex))
            {
                throw ex;
            }

            item = new EDIDLink <T>(HeaderTranslation.ReadNextRecordType(frame));
            return(true);
        }
Exemple #7
0
 /// <summary>
 /// Compares equality of two links.
 /// </summary>
 /// <param name="other">Other link to compare to</param>
 /// <returns>True if EDID members are equal</returns>
 public bool Equals(IEDIDLink <TMajor>?other) => this.EDID.Equals(other?.EDID);
Exemple #8
0
 /// <summary>
 /// Attempts to locate link target in given Link Cache.
 /// </summary>
 /// <param name="edidLink">EDIDLink to resolve</param>
 /// <param name="package">Link Cache to resolve against</param>
 /// <param name="major">Located record if successful</param>
 /// <returns>True if link was resolved and a record was retrieved</returns>
 /// <typeparam name="TMajor">Major Record type to resolve to</typeparam>
 public static bool TryResolve <TMajor>(this IEDIDLink <TMajor> edidLink, ILinkCache package, out TMajor major)
     where TMajor : IMajorRecordCommonGetter
 {
     major = edidLink.Resolve(package);
     return(major != null);
 }