Sum elements of a struct

How can I sum the elements of MyStruct?

Code:

struct MyStruct
            a::Int 
            b::SVector{N_lds, Int64} 
            c::Int 
        end 

        import Base: -
        -(x::MyStruct, y::MyStruct) = MyStruct(x.a - y.a, x.b .- y.b, x.c - y.c)
        v1 = MyStruct(16, [0, 0, 1], 1)
        v2 = MyStruct(15, [5, 6, 1], 1)
        fg = v1 -v2
        
        sum(fg)

ERROR: MethodError: no method matching iterate(::MyStruct)

What do you want sum(MyStruct) to return?

v2 = MyStruct(15, [5, 6, 1], 1)

should it return 28?

No, the sum of the elements of fg. Should be -10.

I mean, should sum(v2) return 28?

yes

Okay, given that you know how to overload Base.-, it should be easy to write code to overwrite Base.sum.

But if you want sum to work automatically, you should write a method for iterate. If you were to count through the elements of MyStruct, would would that be a meaningful thing to do? In a mathematical sense. This is dependent on what MyStruct represents.

Unless this is a toy example, this is probably not the recommended course of action and will come back to bite you in the future.

This seems like an XY problem. What are you actually trying to represent with your data structure here?