[FR] make the `@agent` macro define pretty printing as well
Opened this issue · 1 comments
Datseris commented
Currently we have:
@agent struct SchellingAgent(GridAgent{2})
mood::Bool # whether the agent is happy in its position
group::Int # The group of the agent, determines mood as it interacts with neighbors
end
a = SchellingAgent(1, (1,1), true, 1)
which prints
SchellingAgent(1, (1, 1), true, 1)
wouldn't it be nice to have pretty printing by default, so that each field is printed in 1 line, along with its name, its type, and then = value ? I am sure this shouldn't be too difficult to do...?
Datseris commented
Actually, we don't this at the macro level. We can define Base.show(..., a::AbstractAgent)
and just loop over fields and print them. In this function we can also handle properly the @multiagent
created types.