/// <inheritdoc/> public bool Equals(MetadataName <T>?other) { if (other is null) { return(false); } return(string.Equals(_name, other._name, StringComparison.Ordinal)); }
/// <summary> /// Attempt to extract a strongly-typed metadata for the lease. /// </summary> /// <typeparam name="T">Type of the expected metadata.</typeparam> /// <param name="metadataName">The name of the strongly-typed metadata. Some common ones can be found in <see cref="MetadataName"/>.</param> /// <param name="metadata">The strongly-typed metadata object if it exists.</param> /// <returns>True if the metadata exists, otherwise false.</returns> public bool TryGetMetadata <T>(MetadataName <T> metadataName, [MaybeNull] out T metadata) { if (metadataName.Name == null) { metadata = default; return(false); } bool successful = TryGetMetadata(metadataName.Name, out object?rawMetadata); if (successful) { metadata = rawMetadata is null ? default : (T)rawMetadata; return(true); } metadata = default; return(false); }
/// <summary> /// Attempt to extract a strongly-typed metadata for the lease. /// </summary> /// <typeparam name="T">Type of the expected metadata.</typeparam> /// <param name="metadataName">The name of the strongly-typed metadata. Some common ones can be found in <see cref="MetadataName"/>.</param> /// <param name="metadata">The strongly-typed metadata object if it exists.</param> /// <returns>True if the metadata exists, otherwise false.</returns> public bool TryGetMetadata <T>(MetadataName <T> metadataName, [MaybeNull] out T metadata) { if (metadataName.Name == null) { metadata = default; return(false); } var successful = TryGetMetadata(metadataName.Name, out var rawMetadata); if (successful) { // TODO: is null metadata allowed? metadata = rawMetadata is null ? default : (T)rawMetadata; return(true); } metadata = default; return(false); }
/// <inheritdoc/> public bool Equals(MetadataName <T> other) { // NOTE: intentionally ordinal and case sensitive, matches CNG. return(_name == other._name); }