public static string Dump(TestAllKnobs value)
        {
            var assistant = new AssistantDumper();

            Dump(assistant, value);
            return(assistant.ToString());
        }
        static internal void Dump(AssistantDumper assistant, TestAllKnobs value, bool withSeparator = false)
        {
            assistant.IncrementDepth();
            if (assistant.MaximumDepthExceeded())
            {
                return;
            }

            assistant.AddStartObject();
            assistant.AddType("CSharpRefImpl.CSharpModel.TestAllKnobs", true /*withSeparator*/);
            string valueAsString = "Unsupported Value";

            switch (value)
            {
            case TestAllKnobs.AnEnumerator:
                valueAsString = "AnEnumerator";
                break;

            case TestAllKnobs.AnotherEnumerator:
                valueAsString = "AnotherEnumerator";
                break;
            }

            assistant.Add("value", valueAsString);
            assistant.AddEndObject();

            assistant.DecrementDepth();
        }