Interface ILayoutEvolver<TLayout, TNode>
Represents types capable of evolving layouts.
Namespace: Edgar.Legacy.Core.LayoutEvolvers.Interfaces
Assembly: Edgar.dll
Syntax
public interface ILayoutEvolver<TLayout, TNode>
Type Parameters
| Name | Description |
|---|---|
| TLayout | Type of the layout that will be evolved. |
| TNode | Type of the nodes that are present in the layout. |
Methods
Evolve(TLayout, Chain<TNode>, Int32)
Returns valid layouts evolved from a given initial layout.
Declaration
IEnumerable<TLayout> Evolve(TLayout initialLayout, Chain<TNode> chain, int count)
Parameters
| Type | Name | Description |
|---|---|---|
| TLayout | initialLayout | A layout that is used as the base for the evolution. |
| Chain<TNode> | chain | Only nodes from the chain should be perturbed. |
| System.Int32 | count | How many layouts should be produced. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<TLayout> |
Remarks
It is advised to implement the method lazily using "yield return" syntax. The generation process can be then better controller and optimized.
The evolver may produce less than requested layouts if it finds itself in a situation where it is better to terminate than to continue.
Events
OnPerturbed
An event that is fired whenever a layout is perturbed.
Declaration
event EventHandler<TLayout> OnPerturbed
Event Type
| Type | Description |
|---|---|
| System.EventHandler<TLayout> |
OnValid
An event that is fired whenever a valid layout is produced.
Declaration
event EventHandler<TLayout> OnValid
Event Type
| Type | Description |
|---|---|
| System.EventHandler<TLayout> |