aboutsummaryrefslogtreecommitdiff
path: root/julia/CrystFEL/src/reflists.jl
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2024-02-19 17:11:58 +0100
committerThomas White <taw@physics.org>2024-02-19 17:11:58 +0100
commit0da7d9d1208f273aeb557adaed3f3e0f6dcdfe5a (patch)
tree8ed415aa3ab434554d82c8c1d380a55e373422df /julia/CrystFEL/src/reflists.jl
parent93181e995bcae77e69d0b7eb3e32abfdd4d0d738 (diff)
Julia: Add Base.get!(::Reflist, indices)
Diffstat (limited to 'julia/CrystFEL/src/reflists.jl')
-rw-r--r--julia/CrystFEL/src/reflists.jl15
1 files changed, 15 insertions, 0 deletions
diff --git a/julia/CrystFEL/src/reflists.jl b/julia/CrystFEL/src/reflists.jl
index 89967d6f..901162e8 100644
--- a/julia/CrystFEL/src/reflists.jl
+++ b/julia/CrystFEL/src/reflists.jl
@@ -108,6 +108,21 @@ function Base.getindex(reflist::RefList{T}, indices) where T
end
+function Base.get!(reflist::RefList{T}, indices) where T
+
+ refl = @ccall libcrystfel.find_refl(reflist.internalptr::Ptr{InternalRefList},
+ indices[1]::Cint,
+ indices[2]::Cint,
+ indices[3]::Cint)::Ptr{InternalReflection}
+
+ if refl == C_NULL
+ return push!(reflist, indices)
+ else
+ return T(refl)
+ end
+end
+
+
function Base.push!(reflist::RefList{T}, indices) where T
refl = @ccall libcrystfel.add_refl(reflist.internalptr::Ptr{InternalRefList},