The [Record] macro is applied to classes and makes it very easy to create simple data-transfer objects.
Watch the Screencast
Before
using System;
namespace MacrosDemo
{
public class CustomerDto
{
public Id : int;
public FirstName : string;
public LastName : string;
public IsPrefered : bool;
public this(id : int, firstName : string, lastName : string, isPrefered : bool)
{
Id = id;
FirstName = firstName;
LastName = lastName;
IsPrefered = isPrefered;
}
}
module Program
{
Main() : void
{
def dto = CustomerDto(1, "John", "Smith", true);
}
}
}
After
using System;
using Nemerle.Utility;
namespace MacrosDemo
{
[Record]
public class CustomerDto
{
public Id : int;
public FirstName : string;
public LastName : string;
public IsPrefered : bool;
}
module Program
{
Main() : void
{
def dto = CustomerDto(1, "John", "Smith", true);
}
}
}