diff --git a/SliceMap.Tests/SliceMap.Tests.fsproj b/SliceMap.Tests/SliceMap.Tests.fsproj index 2298c47..7ef5830 100644 --- a/SliceMap.Tests/SliceMap.Tests.fsproj +++ b/SliceMap.Tests/SliceMap.Tests.fsproj @@ -5,6 +5,7 @@ false false + $(DefineConstants);USE_LEGACY_NAMESPACE diff --git a/SliceMap.Tests/Tests.fs b/SliceMap.Tests/Tests.fs index e0847bc..755f442 100644 --- a/SliceMap.Tests/Tests.fs +++ b/SliceMap.Tests/Tests.fs @@ -24,8 +24,11 @@ module Types = [ |] )>] module SlicetSetTests = + #if USE_LEGACY_NAMESPACE + open Flips.SliceMap + #else open SliceMap - + #endif [] let ``SliceSet has only distinct values`` (v:List) = @@ -204,7 +207,11 @@ module Types = [ |] )>] module SliceMapTests = + #if USE_LEGACY_NAMESPACE + open Flips.SliceMap + #else open SliceMap + #endif [] let ``SliceMap addition is commutative`` (v1:List<(NonEmptyString * Scalar)>) (v2:List<(NonEmptyString * Scalar)>) = @@ -293,8 +300,15 @@ module Types = (x1:NonEmptyString) = let sm = d |> SMap + #if USE_LEGACY_NAMESPACE + // todo: see https://github.com/dotnet/fsharp/issues/10544 + // maybe there is a workaround? + let r = sm.[Flips.SliceMap.SliceType.GreaterOrEqual x1] + // original code was: + // let r = sm.[GreaterOrEqual x1] + #else let r = sm.[GreaterOrEqual x1] - + #endif for (k1) in r.Keys do Assert.True(k1 >= x1) diff --git a/SliceMap/SMap.fs b/SliceMap/SMap.fs index 7a280a7..870a51c 100644 --- a/SliceMap/SMap.fs +++ b/SliceMap/SMap.fs @@ -207,3 +207,25 @@ module SMap = let containsKey k (m:SMap<_,_>) = m.ContainsKey k + +#if USE_LEGACY_NAMESPACE +namespace Flips.SliceMap +open System +[] +type SMap<'Key, 'Value when 'Key : comparison and 'Value : equality> = SliceMap.SMap<'Key,'Value> + +[] +[] +module SMap = + + let ofSeq = SliceMap.SMap.ofSeq + let toSeq = SliceMap.SMap.toSeq + + let ofMap = SliceMap.SMap.ofMap + let toMap = SliceMap.SMap.toMap + let ofList = SliceMap.SMap.ofList + let toList = SliceMap.SMap.toList + let ofArray = SliceMap.SMap.ofArray + let toArray = SliceMap.SMap.toArray + let containsKey = SliceMap.SMap.containsKey +#endif \ No newline at end of file diff --git a/SliceMap/SliceMap.fsproj b/SliceMap/SliceMap.fsproj index 6685d95..ac5bbdc 100644 --- a/SliceMap/SliceMap.fsproj +++ b/SliceMap/SliceMap.fsproj @@ -7,6 +7,7 @@ https://github.com/matthewcrews/SliceMap MIT + $(DefineConstants);USE_LEGACY_NAMESPACE diff --git a/SliceMap/SliceSet.fs b/SliceMap/SliceSet.fs index 32ecdcb..1c84cd3 100644 --- a/SliceMap/SliceSet.fs +++ b/SliceMap/SliceSet.fs @@ -353,4 +353,24 @@ module SliceSet = | Between (lowerBound, upperBound) -> keys.Between lowerBound upperBound | In set -> keys.Intersect (SliceSet set) | NotIn set -> keys.Minus (SliceSet set) - | Where f -> keys.Filter f \ No newline at end of file + | Where f -> keys.Filter f + +#if USE_LEGACY_NAMESPACE +namespace Flips.SliceMap +open System +[] +type SliceType<'a when 'a : comparison> = SliceMap.SliceType<'a> +[] +type RankResult = SliceMap.RankResult +[] +type SliceSet<'T when 'T : comparison> = SliceMap.SliceSet<'T> + +[] +[] +module SliceSet = + let intersect = SliceMap.SliceSet.intersect + let toSeq = SliceMap.SliceSet.toSeq + let toList = SliceMap.SliceSet.toList + let union = SliceMap.SliceSet.union + let slice = SliceMap.SliceSet.slice +#endif \ No newline at end of file