internal static ImageSweepSettings DeserializeImageSweepSettings(JsonElement element) { Optional <EarlyTerminationPolicy> earlyTermination = default; ImageSweepLimitSettings limits = default; SamplingAlgorithmType samplingAlgorithm = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("earlyTermination")) { if (property.Value.ValueKind == JsonValueKind.Null) { earlyTermination = null; continue; } earlyTermination = EarlyTerminationPolicy.DeserializeEarlyTerminationPolicy(property.Value); continue; } if (property.NameEquals("limits")) { limits = ImageSweepLimitSettings.DeserializeImageSweepLimitSettings(property.Value); continue; } if (property.NameEquals("samplingAlgorithm")) { samplingAlgorithm = new SamplingAlgorithmType(property.Value.GetString()); continue; } } return(new ImageSweepSettings(earlyTermination.Value, limits, samplingAlgorithm)); }
public ImageSweepSettings(ImageSweepLimitSettings limits, SamplingAlgorithmType samplingAlgorithm) { if (limits == null) { throw new ArgumentNullException(nameof(limits)); } Limits = limits; SamplingAlgorithm = samplingAlgorithm; }
internal ImageSweepSettings(EarlyTerminationPolicy earlyTermination, ImageSweepLimitSettings limits, SamplingAlgorithmType samplingAlgorithm) { EarlyTermination = earlyTermination; Limits = limits; SamplingAlgorithm = samplingAlgorithm; }