Ejemplo n.º 1
0
        /// <inheritdoc/>
        public bool Equals(MetadataName <T>?other)
        {
            if (other is null)
            {
                return(false);
            }

            return(string.Equals(_name, other._name, StringComparison.Ordinal));
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
 /// <inheritdoc/>
 public bool Equals(MetadataName <T> other)
 {
     // NOTE: intentionally ordinal and case sensitive, matches CNG.
     return(_name == other._name);
 }