That did it - thank you!

For the archives:

eltype(::Type{EdgeIter}) = Edge


On Friday, November 27, 2015 at 5:29:20 PM UTC-8, Dan wrote:
>
> Looking at the collect code, it seems you really should define Base.eltype 
> for 
> your iterator and things will work out.
>
> On Saturday, November 28, 2015 at 3:15:18 AM UTC+2, Seth wrote:
>>
>> I guess that makes sense, though I struggle to see why one would create 
>> an iterator that produces multiple types.
>>
>> On Friday, November 27, 2015 at 4:45:26 PM UTC-8, ele...@gmail.com wrote:
>>>
>>> Collect only requires that the collection is iterable, for which 
>>> providing an eltype() function is optional.  I don't know if it is possible 
>>> to check at runtime if eltype() exists for the collection then it could use 
>>> that instead of Any, otherwise it would have to iterate the collection to 
>>> find all the types and either accumulate the results in an Any collection 
>>> as it goes and copy them to the right type collection later, or iterate 
>>> twice.
>>>
>>> On Saturday, November 28, 2015 at 10:17:09 AM UTC+10, Seth wrote:
>>>>
>>>> Well, I just found collect(Edge, edges(g)) works, but it would be nice 
>>>> if collect() returned a vector of Edge by default. Any ideas?
>>>>
>>>> On Friday, November 27, 2015 at 3:46:58 PM UTC-8, Seth wrote:
>>>>>
>>>>> I have implemented my own iterator that works against edges in a 
>>>>> graph, and edges(g) returns the iterator. However, collect(edges(g)) 
>>>>> returns an array of Any,1. I'd like it to return an array of Edge, 1. 
>>>>> What am I missing?
>>>>>
>>>>>

Reply via email to