using System.Collections.Generic; using System.Linq; namespace CapnpC.CSharp.Generator.Model { class Method: IHasGenericParameters { public TypeDefinition DeclaringInterface { get; set; } public int Id { get; set; } public string Name { get; set; } public List Params { get; } = new List(); public List Results { get; } = new List(); public Type ParamsStruct { get; set; } public Type ResultStruct { get; set; } public List GenericParameters { get; } = new List(); public Method Clone() { var method = new Method() { DeclaringInterface = DeclaringInterface, Id = Id, Name = Name, ParamsStruct = ParamsStruct, ResultStruct = ResultStruct }; method.Params.AddRange(Params.Select((p => p.Clone()))); method.Results.AddRange(Results.Select(r => r.Clone())); method.GenericParameters.AddRange(GenericParameters); return method; } } }