Futher Utilities
Iterator with known eltype
MissingStrategies.typediter — Functiontypediter(::Type{ET},iter::IT)
TypedIterator{IT,ET}Construct a thin wrapper around iterator IT returning eltype ET.
Examples
using SimpleTraits
x = [1,2,missing]
@traitfn fm(x::::IsEltypeSuperOfMissing) = count(ismissing.(x))
gen = (2*xi for xi in x)
eltype(gen) == Any
#fm(gen) # MethodError
gent = typediter(eltype(x), 2*xi for xi in x)
eltype(gent) == eltype(x)
fm(gent) == 1Return macro
MissingStrategies.@returnmissing — Macro@returnmissing(expr)Return missing, if expr evaluates to missing.
Example
finner(x::Real) = x*2
f1(x) = finner(x)
f2(x) = finner(@returnmissing(x))
f1(3) == f2(3) == 2*3
# error: f1(missing)
ismissing(f2(missing))