public void InvokeActionConstantIsSupportedSimpleStruct() { var refValueArg = Parameter(typeof(SimplePersonStruct).MakeByRefType(), "value"); void AssigningRefs(ref SimplePersonStruct value) => value.Health = 5; var lambda = Lambda <DeserializeDelegateSimple <SimplePersonStruct> >( Assign(PropertyOrField(refValueArg, nameof(SimplePersonStruct.Health)), Constant(5)), refValueArg); void LocalAssert(DeserializeDelegateSimple <SimplePersonStruct> invoke) { var person = new SimplePersonStruct { Health = 1 }; invoke(ref person); Assert.AreEqual(5, person.Health); } LocalAssert(AssigningRefs); Assert.DoesNotThrow(() => lambda.CompileSys()); var funcFast = lambda.CompileFast(true); LocalAssert(funcFast); }
protected override string RunSimpleStructTest() { var o = new SimplePersonStruct { Name = "Name", Surname = "Surname" }; using (Stream s = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(s, o); return($"{s.Length:N2} bytes"); } }
private SimplePersonStruct SimplePersonPass(SimplePersonStruct person) { return(person); }