internal static GraphStack New(GraphPointer model) { var stack = GenericPool <GraphStack> .New(() => new GraphStack()); stack.CopyFrom(model); return(stack); }
internal static GraphStack New(IGraphRoot root, List <IGraphParentElement> parentElements) { var stack = GenericPool <GraphStack> .New(() => new GraphStack()); stack.InitializeNoAlloc(root, parentElements, true); return(stack); }
public static CloningContext New(ICloner fallbackCloner, bool tryPreserveInstances) { var context = GenericPool <CloningContext> .New(() => new CloningContext()); context.fallbackCloner = fallbackCloner; context.tryPreserveInstances = tryPreserveInstances; return(context); }
public static Flow New(GraphReference reference) { Ensure.That(nameof(reference)).IsNotNull(reference); var flow = GenericPool <Flow> .New(() => new Flow());; flow.stack = reference.ToStackPooled(); return(flow); }
public static Recursion <T> New(int maxDepth) { if (!Recursion.safeMode) { return(null); } if (maxDepth < 1) { throw new ArgumentException("Max recursion depth must be at least one.", nameof(maxDepth)); } var recursion = GenericPool <Recursion <T> > .New(() => new Recursion <T>()); recursion.maxDepth = maxDepth; return(recursion); }
public static UnitPreservation Preserve(IUnit unit) { var preservation = GenericPool <UnitPreservation> .New(() => new UnitPreservation()); foreach (var defaultValue in unit.defaultValues) { preservation.defaultValues.Add(defaultValue.Key, defaultValue.Value); } foreach (var input in unit.inputs) { if (input.hasAnyConnection) { preservation.inputConnections.Add(input.key, ListPool <UnitPortPreservation> .New()); foreach (var connectedPort in input.connectedPorts) { preservation.inputConnections[input.key].Add(new UnitPortPreservation(connectedPort)); } } } foreach (var output in unit.outputs) { if (output.hasAnyConnection) { preservation.outputConnections.Add(output.key, ListPool <UnitPortPreservation> .New()); foreach (var connectedPort in output.connectedPorts) { preservation.outputConnections[output.key].Add(new UnitPortPreservation(connectedPort)); } } } return(preservation); }