We currently re-use the same type-specific Socket wrapper for both inputs and output sockets. Given we are now populating those sockets with more type-specific methods, we should probably split these out into input and output sockets. This would help with type-hinting to know what is going on, and it doesn't make sense for an input vector socket to have VectorSocket.length() which computes a float length of the vector and returns it.
Might want to think more about being deliberate with the design decisions around the sockets and their methods. Part of the node-first design was to avoid long method chains that we need to re-define for each socket, but that's maybe a discussion for somewhere else.
Having an Input/Output socket variant for each would at least help with type hinting so we can warn a use for when they are trying to pass an input socket into an input socket argument.
We currently re-use the same type-specific
Socketwrapper for both inputs and output sockets. Given we are now populating those sockets with more type-specific methods, we should probably split these out into input and output sockets. This would help with type-hinting to know what is going on, and it doesn't make sense for an input vector socket to haveVectorSocket.length()which computes a float length of the vector and returns it.Might want to think more about being deliberate with the design decisions around the sockets and their methods. Part of the node-first design was to avoid long method chains that we need to re-define for each socket, but that's maybe a discussion for somewhere else.
Having an Input/Output socket variant for each would at least help with type hinting so we can warn a use for when they are trying to pass an input socket into an input socket argument.