namespace TeamCity.Docker.Generic { using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; [SuppressMessage("ReSharper", "UnusedMember.Global")] [SuppressMessage("ReSharper", "UnusedMethodReturnValue.Global")] internal interface IGraph { [IoC.NotNull] IEnumerable> Nodes { get; } int NodesCount { get; } [IoC.NotNull] IEnumerable> Links { get; } bool TryAddNode([IoC.NotNull] TNode value, out INode node); bool TryRemoveNode([IoC.NotNull] INode node); bool TryAddLink([IoC.NotNull] INode from, [IoC.NotNull] TLink value, [IoC.NotNull] INode to, out ILink link); bool TryRemoveLink([IoC.NotNull] ILink link); IGraph Copy(Predicate> filter); } }