Add `passage:strip_span/1` function
diff --git a/src/passage.erl b/src/passage.erl
index f44a8d2..a631d82 100644
--- a/src/passage.erl
+++ b/src/passage.erl
@@ -43,6 +43,7 @@
 -export([get_baggage_items/1]).
 -export([log/2, log/3]).
 -export([inject_span/4, extract_span/4]).
+-export([strip_span/1]).
 
 -export_type([tracer_id/0]).
 -export_type([maybe_span/0]).
@@ -292,6 +293,11 @@
             end
     end.
 
+%% @doc Strips the tags, logs and references from the given span.
+-spec strip_span(maybe_span()) -> maybe_span().
+strip_span(undefined) -> undefined;
+strip_span(Span)      -> passage_span:strip(Span).
+
 %%------------------------------------------------------------------------------
 %% Interal Functions
 %%------------------------------------------------------------------------------
diff --git a/src/passage_span.erl b/src/passage_span.erl
index a512272..9029060 100644
--- a/src/passage_span.erl
+++ b/src/passage_span.erl
@@ -72,6 +72,7 @@
 -export([set_baggage_items/2]).
 -export([get_baggage_items/1]).
 -export([get_tracer/1]).
+-export([strip/1]).
 
 %%------------------------------------------------------------------------------
 %% Macros & Records
@@ -246,6 +247,11 @@
 get_tracer(Span) ->
     Span#?SPAN.tracer.
 
+%% @private
+-spec strip(span()) -> span().
+strip(Span) ->
+    Span#?SPAN{refs = [], tags = #{}, logs = []}.
+
 %%------------------------------------------------------------------------------
 %% Internal Functions
 %%------------------------------------------------------------------------------
@@ -284,7 +290,3 @@
           (_)                 -> false
       end,
       Options).
-
--spec strip(span()) -> span().
-strip(Span) ->
-    Span#?SPAN{refs = [], tags = #{}, logs = []}.
diff --git a/test/passage_tests.erl b/test/passage_tests.erl
index 327b801..49d7965 100644
--- a/test/passage_tests.erl
+++ b/test/passage_tests.erl
@@ -107,6 +107,24 @@
                ?assertEqual(#{error => true},
                             passage_span:get_tags(FinishedSpan))
        end},
+      {"strip",
+       fun () ->
+               ok = start_test_tracer(),
+               Root = passage:strip_span(passage:start_span(root, [{tracer, test_tracer}])),
+
+               Span0 = passage:start_span(child, [{child_of, Root}]),
+               Span1 = passage:set_tags(Span0, #{a => b}),
+               Span2 = passage:log(Span1, #{message => hello}, [{time, 0}]),
+
+               ?assertEqual(#{a => b}, passage_span:get_tags(Span2)),
+               ?assertEqual([{#{message => hello}, 0}], passage_span:get_logs(Span2)),
+               ?assertEqual([{child_of, Root}], passage_span:get_refs(Span2)),
+
+               Span3 = passage:strip_span(Span2),
+               ?assertEqual(#{}, passage_span:get_tags(Span3)),
+               ?assertEqual([], passage_span:get_logs(Span3)),
+               ?assertEqual([], passage_span:get_refs(Span3))
+       end},
       {"lifetime",
        fun () ->
                ok = start_test_tracer(),