I would like to have a function call fail or not depending on the type of a DataFrame. I cannot distinguish the DataFrames by column types or size.
For example, I would have two identical functions except for the argument type.
function foo1(df::DataFrame) return nrow(df) end
Here T is some other type, but with the same methods as a DataFrame
function foo2(df::T) return nrow(df) end
Then I would create a standard dataframe and use it as an argument for
df1 = DataFrame(:A => ) foo2(df1)
foo2 would fail, not because
nrow is not a method, but because
df1 is of the wrong type
I guess this could be done with the package TypedDelegation.jl but I wonder if there is a simpler way.