module duck;

import std.conv : to;
import std.stdio : writeln;

class Duck
{
    private string name;
    private int weight;

    this(string name, int weight)
    {
        this.name = name;
        this.weight = weight;
    }

    override string toString() const @safe pure nothrow
    {
        return name ~ " weighs " ~ weight.to!string;
    }

    int opCmp(const Duck otherDuck) const @safe pure nothrow
    {
        if (weight < otherDuck.weight)
        {
            return -1;
        }
        else if (weight == otherDuck.weight)
        {
            return 0;
        }
        else
        {
            return 1;
        }
    }
}
