public static SystemPatch WithPrivacy(this SystemPatch system, SystemPrivacySubject subject, PrivacyLevel level) { // what do you mean switch expressions can't be statements >.> _ = subject switch { SystemPrivacySubject.Description => system.DescriptionPrivacy = level, SystemPrivacySubject.Front => system.FrontPrivacy = level, SystemPrivacySubject.FrontHistory => system.FrontHistoryPrivacy = level, SystemPrivacySubject.MemberList => system.MemberListPrivacy = level, _ => throw new ArgumentOutOfRangeException($"Unknown privacy subject {subject}") }; return(system); }
public static bool TryParseSystemPrivacy(string input, out SystemPrivacySubject subject) { switch (input.ToLowerInvariant()) { case "description": case "desc": case "text": case "info": subject = SystemPrivacySubject.Description; break; case "pronouns": case "prns": subject = SystemPrivacySubject.Pronouns; break; case "members": case "memberlist": case "list": case "mlist": subject = SystemPrivacySubject.MemberList; break; case "fronter": case "fronters": case "front": subject = SystemPrivacySubject.Front; break; case "switch": case "switches": case "fronthistory": case "fh": subject = SystemPrivacySubject.FrontHistory; break; case "groups": case "gs": subject = SystemPrivacySubject.GroupList; break; default: subject = default; return(false); } return(true); }