static InsAssembly WithQualifications(this InsAssembly assembly, ImmutableArray <InsAssemblyQualification> newQualifications) { if (newQualifications == assembly.Qualifications) { return(assembly); } return(new InsAssembly(assembly.Name, newQualifications)); }
public static string Format(InsAssembly assembly) { if (assembly.Qualifications.Length == 0 && assembly.Name.AsSpan().IndexOfAny(Delimiters.All) < 0) { return(assembly.Name); } return(Write(BuilderPool.Rent(), assembly).ToStringAndReturn()); }
public static InsAssembly WithPublicKey(this InsAssembly assembly, byte[] publicKey) { if (publicKey == null) { return(assembly.WithQualification(WellKnownQualificationNames.PublicKey, NullBlob)); } else { return(assembly.WithPublicKey(publicKey.AsSpan())); } }
public static StringBuilder Write(StringBuilder builder, InsAssembly assembly) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (assembly == null) { throw new ArgumentNullException(nameof(assembly)); } return(Writer.WriteAssembly(assembly, builder)); }
public static bool TryGetQualification(this InsAssembly assembly, string name, [NotNullWhen(true)] out string?value) { foreach (var qualification in assembly.Qualifications) { if (qualification.Name == name) { value = qualification.Value; return(true); } } value = null; return(false); }
public static bool TryGetProcessorArchitecture(this InsAssembly assembly, out ProcessorArchitecture processorArchitecture) { if (!assembly.TryGetQualification(WellKnownQualificationNames.ProcessorArchitecture, out var value)) { processorArchitecture = default; return(false); } if (!Enum.TryParse(value, out processorArchitecture)) { throw new FormatException("ProcessorArchitecture qualification was provided, but was unrecognised."); } return(true); }
public static bool TryGetPublicKeyToken(this InsAssembly assembly, out byte[]?publicKeyToken) { if (!assembly.TryGetQualification(WellKnownQualificationNames.PublicKeyToken, out var value)) { publicKeyToken = null; return(false); } if (!TryParseBlob(value, out publicKeyToken)) { throw new FormatException("PublicKeyToken qualification was provided, but was in an unrecognised format."); } return(true); }
public static bool TryGetVersion(this InsAssembly assembly, [NotNullWhen(true)] out Version?version) { if (!assembly.TryGetQualification(WellKnownQualificationNames.Version, out var value)) { version = null; return(false); } if (!Version.TryParse(value, out version)) { throw new FormatException("Version qualification was provided, but was in an unrecognised format."); } return(true); }
public virtual InsAssembly VisitAssembly(InsAssembly assembly, TArgument argument) { if (assembly == null) { throw new ArgumentNullException(nameof(assembly)); } var qualifications = VisitAssemblyQualifications(assembly.Qualifications, argument); if (qualifications == assembly.Qualifications) { return(assembly); } return(new InsAssembly(assembly.Name, qualifications)); }
public static StringBuilder WriteAssembly(InsAssembly assembly, StringBuilder builder) { WriteIdentifier(assembly.Name, builder); foreach (var qualification in assembly.Qualifications) { builder.Append(", "); WriteIdentifier(qualification.Name, builder); builder.Append('='); if (RequiresQuoting(qualification.Value)) { WriteQuotedIdentifier(qualification.Value, builder); } else { WriteIdentifier(qualification.Value, builder); } } return(builder); }
public static InsAssembly WithPublicKey(this InsAssembly assembly, ReadOnlySpan <byte> publicKey) => assembly.WithQualification(WellKnownQualificationNames.PublicKey, FormatBlob(publicKey));
public static InsAssembly WithVersion(this InsAssembly assembly, Version version) => assembly.WithQualification(WellKnownQualificationNames.Version, version.ToString());
public static InsAssembly WithoutQualification(this InsAssembly assembly, string name) => assembly.WithQualifications(assembly.Qualifications.WithoutQualification(name));
public static InsAssembly WithProcessorArchitecture(this InsAssembly assembly, ProcessorArchitecture processorArchitecture) => assembly.WithQualification(WellKnownQualificationNames.ProcessorArchitecture, processorArchitecture.ToString());