Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- /*
- * public data class LoginResource
- * {
- * public string Username { get; }
- * public string Password { get; }
- * public bool RememberMe { get; } = true;
- * }
- */
- public sealed class LoginResource : IEquatable<LoginResource> {
- public struct Builder
- {
- public string Username;
- public string Password;
- public bool RememberMe;
- }
- public static void Init(ref Builder builder)
- {
- builder.RememberMe = true;
- }
- private readonly Builder _builder;
- public LoginResource(Builder builder) => _builder = builder;
- public string Username => _builder.Username;
- public string Password => _builder.Password;
- public bool RememberMe => _builder.RememberMe;
- public override bool Equals(object obj)
- {
- return Equals(obj as LoginResource);
- }
- public bool Equals(LoginResource that)
- {
- if (that is null) return false;
- var eq1 = EqualityComparer<string>.Default;
- return eq1.Equals(Username, that.Username)
- && eq1.Equals(this.Password, that.Password)
- && this.RememberMe == that.RememberMe;
- }
- public override int GetHashCode()
- {
- var eq1 = EqualityComparer<string>.Default;
- var hashCode = -736459255;
- hashCode = hashCode * -1521134295 + eq1.GetHashCode(Username);
- hashCode = hashCode * -1521134295 + eq1.GetHashCode(Password);
- hashCode = hashCode * -1521134295 + RememberMe.GetHashCode();
- return hashCode;
- }
- public override string ToString()
- {
- return $"{{{nameof(Username)} = {Username}, {nameof(Password)} = {Password}, {nameof(RememberMe)} = {RememberMe}}}";
- }
- public static bool operator ==(LoginResource x, LoginResource y) {
- return x is LoginResource @this && @this.Equals(x);
- }
- public static bool operator !=(LoginResource x, LoginResource y) {
- return !(x == y);
- }
- }
Add Comment
Please, Sign In to add comment