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 foo
.
df1 = DataFrame(:A => [1])
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.