@@ -5,6 +5,7 @@ let inline id x = x
55open FsToolkit.ErrorHandling
66
77Result.ofChoice
8+
89module Operators =
910
1011 let inline bindM builder m ( [<InlineIfLambda>] f ) =
@@ -167,7 +168,6 @@ module AsyncResult =
167168 }
168169
169170
170-
171171module DisposableOptionThings =
172172 open System
173173 open System.Threading .Tasks
@@ -177,16 +177,23 @@ module DisposableOptionThings =
177177 [<CompilationRepresentation( CompilationRepresentationFlags.UseNullAsTrueValue) >]
178178 [<StructuralEquality; StructuralComparison>]
179179 type DisposableOption < 'a when 'a :> IDisposable > =
180- | None
181- | Some of 'a
180+ | None
181+ | Some of 'a
182+
182183 interface IDisposable with
183184 member this.Dispose () =
184185 match this with
185186 | None -> ()
186187 | Some x -> x.Dispose()
187188
188- static member inline OfObj < 'a when 'a :> IDisposable > ( x : 'a ) =
189- if box x |> isNull then None else Some x
189+ static member inline OfObj < 'a when 'a :> IDisposable >( x : 'a ) =
190+ if
191+ box x
192+ |> isNull
193+ then
194+ None
195+ else
196+ Some x
190197
191198 static member inline ToOption ( x : DisposableOption < 'a >) =
192199 match x with
@@ -198,30 +205,25 @@ module DisposableOptionThings =
198205 | None -> ValueOption.None
199206 | Some x -> ValueOption.Some x
200207
201- static member inline OfOption ( x : 'a Option ) =
208+ static member inline OfOption ( x : 'a Option ) =
202209 match x with
203210 | Option.None -> None
204211 | Option.Some x -> Some x
205212
206- static member inline OfValueOption ( x : 'a ValueOption ) =
213+ static member inline OfValueOption ( x : 'a ValueOption ) =
207214 match x with
208215 | ValueNone -> None
209216 | ValueSome x -> Some x
210217
211- static member inline op_Implicit ( x : 'a ) =
212- DisposableOption.OfObj x
218+ static member inline op_Implicit ( x : 'a ) = DisposableOption.OfObj x
213219
214- static member inline op_Implicit ( x : 'a DisposableOption ) =
215- DisposableOption.ToOption x
220+ static member inline op_Implicit ( x : 'a DisposableOption ) = DisposableOption.ToOption x
216221
217- static member inline op_Implicit ( x : 'a DisposableOption ) =
218- DisposableOption.ToValueOption x
222+ static member inline op_Implicit ( x : 'a DisposableOption ) = DisposableOption.ToValueOption x
219223
220- static member inline op_Implicit ( x : 'a Option ) =
221- DisposableOption.OfOption x
224+ static member inline op_Implicit ( x : 'a Option ) = DisposableOption.OfOption x
222225
223- static member inline op_Imp licit ( x : 'a ValueOption ) =
224- DisposableOption.OfValueOption x
226+ static member inline op_Imp licit ( x : 'a ValueOption ) = DisposableOption.OfValueOption x
225227
226228
227229 [<RequireQualifiedAccess>]
@@ -230,10 +232,12 @@ module DisposableOptionThings =
230232 match x with
231233 | DisposableOption.Some x -> f x
232234 | DisposableOption.None -> None
235+
233236 let inline map f x =
234237 match x with
235- | DisposableOption.Some x -> Some ( f x)
238+ | DisposableOption.Some x -> Some( f x)
236239 | DisposableOption.None -> None
240+
237241 let inline iter f x =
238242 match x with
239243 | DisposableOption.Some x -> f x
@@ -242,16 +246,23 @@ module DisposableOptionThings =
242246
243247 [<RequireQualifiedAccess>]
244248 type AsyncDisposableOption < 'a when 'a :> IAsyncDisposable > =
245- | Some of 'a
246- | None
249+ | Some of 'a
250+ | None
251+
247252 interface IAsyncDisposable with
248253 member this.DisposeAsync () =
249254 match this with
250255 | Some x -> x.DisposeAsync()
251256 | None -> ValueTask()
252257
253- static member inline ofObj ( x : 'a ) =
254- if box x |> isNull then None else Some x
258+ static member inline ofObj ( x : 'a ) =
259+ if
260+ box x
261+ |> isNull
262+ then
263+ None
264+ else
265+ Some x
255266
256267 member inline x.toOption () =
257268 match x with
@@ -263,43 +274,47 @@ module DisposableOptionThings =
263274 | Some x -> ValueOption.Some x
264275 | None -> ValueOption.None
265276
266- static member inline ofOption ( x : 'a Option ) =
277+ static member inline ofOption ( x : 'a Option ) =
267278 match x with
268279 | Option.Some x -> Some x
269280 | Option.None -> None
270281
271- static member inline ofValueOption ( x : 'a ValueOption ) =
282+ static member inline ofValueOption ( x : 'a ValueOption ) =
272283 match x with
273284 | ValueOption.ValueSome x -> Some x
274285 | ValueOption.ValueNone -> None
275286
276- static member inline op_Implicit ( x : 'a ) =
277- AsyncDisposableOption.ofObj x
287+ static member inline op_Implicit ( x : 'a ) = AsyncDisposableOption.ofObj x
278288
279- static member inline op_Implicit ( x : 'a AsyncDisposableOption ) =
280- x.toOption()
289+ static member inline op_Implicit ( x : 'a AsyncDisposableOption ) = x.toOption ()
281290
282- static member inline op_Implicit ( x : 'a AsyncDisposableOption ) =
283- x.toValueOption()
291+ static member inline op_Implicit ( x : 'a AsyncDisposableOption ) = x.toValueOption ()
284292
285- static member inline op_Implicit ( x : 'a Option ) =
286- AsyncDisposableOption.ofOption x
293+ static member inline op_Implicit ( x : 'a Option ) = AsyncDisposableOption.ofOption x
287294
288- static member inline op_Implicit ( x : 'a ValueOption ) =
289- AsyncDisposableOption.ofValueOption x
295+ static member inline op_Implicit ( x : 'a ValueOption ) = AsyncDisposableOption.ofValueOption x
290296
291297module Examples =
292298 open DisposableOptionThings
293299 open System.Diagnostics
294300
295- let inline implicitConv ( x : ^T ) : ^U = (( ^T or ^U ) : ( static member op_Implicit : ^T -> ^U ) ( x))
301+ let inline implicitConv ( x : ^T ) : ^U =
302+ (( ^T or ^U ): ( static member op_Implicit : ^T -> ^U ) ( x))
303+
296304 let inline (!>) x = implicitConv x
297- let inline (|!>) x f = f (!> x)
305+ let inline (|!>) x f = f (!> x)
298306
299307 let activitySource = new ActivitySource( " Playground.App" )
300308
301309 let example () =
302- use a = activitySource.StartActivity ( " lol " ) |> DisposableOption.OfObj
303- a |!> Option.iter ( fun a -> a.AddTag ( " hello " , " world " ) |> ignore )
304- ()
310+ use a =
311+ activitySource.StartActivity ( " lol " )
312+ |> DisposableOption.OfObj
305313
314+ a
315+ |!> Option.iter ( fun a ->
316+ a.AddTag( " hello" , " world" )
317+ |> ignore
318+ )
319+
320+ ()
0 commit comments