internal static AutoTargetRollingWindowSize DeserializeAutoTargetRollingWindowSize(JsonElement element) { TargetRollingWindowSizeMode mode = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("mode")) { mode = new TargetRollingWindowSizeMode(property.Value.GetString()); continue; } } return(new AutoTargetRollingWindowSize(mode)); }
internal static CustomTargetRollingWindowSize DeserializeCustomTargetRollingWindowSize(JsonElement element) { int value = default; TargetRollingWindowSizeMode mode = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { value = property.Value.GetInt32(); continue; } if (property.NameEquals("mode")) { mode = new TargetRollingWindowSizeMode(property.Value.GetString()); continue; } } return(new CustomTargetRollingWindowSize(mode, value)); }
internal static TargetRollingWindowSize DeserializeTargetRollingWindowSize(JsonElement element) { if (element.TryGetProperty("mode", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "Auto": return(AutoTargetRollingWindowSize.DeserializeAutoTargetRollingWindowSize(element)); case "Custom": return(CustomTargetRollingWindowSize.DeserializeCustomTargetRollingWindowSize(element)); } } TargetRollingWindowSizeMode mode = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("mode")) { mode = new TargetRollingWindowSizeMode(property.Value.GetString()); continue; } } return(new TargetRollingWindowSize(mode)); }