/
aprogrammer
/
reverse-proxy-ms-yarp
Обзор
Документация
Войти
/
aprogrammer
/
reverse-proxy-ms-yarp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Kubernetes.Controller/Client/GroupApiVersionKind.cs
67 строк
2 KB
David Bevin
Tidied up namespaces for Kubernetes projects (#1717)
27 май 2022, 18:52
Не верифицирован
27 май 2022, 18:52
2fa9c3b
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using k8s.Models; using System; using System.Reflection; namespace Yarp.Kubernetes.Controller.Client; public struct GroupApiVersionKind : IEquatable<GroupApiVersionKind> { public GroupApiVersionKind(string group, string apiVersion, string kind) { ApiVersion = apiVersion; GroupApiVersion = string.IsNullOrEmpty(group) ? apiVersion : $"{group}/{apiVersion}"; Kind = kind; } public string ApiVersion { get; } public string GroupApiVersion { get; } public string Kind { get; } public static GroupApiVersionKind From<TResource>() => From(typeof(TResource)); public static GroupApiVersionKind From(Type resourceType) { var entity = resourceType.GetTypeInfo().GetCustomAttribute<KubernetesEntityAttribute>(); return new GroupApiVersionKind( group: entity.Group, apiVersion: entity.ApiVersion, kind: entity.Kind); } public override bool Equals(object obj) { return obj is GroupApiVersionKind kind && Equals(kind); } public bool Equals(GroupApiVersionKind other) { return GroupApiVersion == other.GroupApiVersion && Kind == other.Kind; } public override int GetHashCode() { return HashCode.Combine(GroupApiVersion, Kind); } public override string ToString() { return $"{Kind}.{GroupApiVersion}"; } public static bool operator ==(GroupApiVersionKind left, GroupApiVersionKind right) { return left.Equals(right); } public static bool operator !=(GroupApiVersionKind left, GroupApiVersionKind right) { return !(left == right); } }