From 48574edf3ca05c38ada966b69716c061c5037937 Mon Sep 17 00:00:00 2001 From: Lyndon White Date: Tue, 13 Apr 2021 18:39:16 +0100 Subject: [PATCH] Handle constructing from AbstractString --- Project.toml | 9 ++++----- src/base.jl | 2 ++ test/runtests.jl | 6 ++++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Project.toml b/Project.toml index 35dc1e8..adb4957 100644 --- a/Project.toml +++ b/Project.toml @@ -1,17 +1,16 @@ name = "ShortStrings" uuid = "63221d1c-8677-4ff0-9126-0ff0817b4975" -authors = ["Dai ZJ ", "ScottPJones ", - "Lyndon White "] -version = "0.3.6" +authors = ["Dai ZJ ", "ScottPJones ", "Lyndon White "] +version = "0.3.7" [deps] BitIntegers = "c3b6d118-76ef-56ca-8cc7-ebb389d030a1" -SortingAlgorithms = "a2af1166-a08f-5f64-846c-94a0d3cef48c" MurmurHash3 = "b10b62ed-fbae-5ea5-b934-abaf0477b71d" +SortingAlgorithms = "a2af1166-a08f-5f64-846c-94a0d3cef48c" [compat] -MurmurHash3 = "1.1" BitIntegers = "0.2" +MurmurHash3 = "1.1" SortingAlgorithms = "0.3" julia = "1" diff --git a/src/base.jl b/src/base.jl index 53169b1..8067af9 100644 --- a/src/base.jl +++ b/src/base.jl @@ -101,6 +101,8 @@ end val end +ShortString{T}(s::AbstractString) where T = ShortString{T}(String(s)) + function ShortString{T}(s::Union{String,SubString{String}}) where {T} sz = sizeof(s) sz === 0 && return ShortString{T}(T(0)) diff --git a/test/runtests.jl b/test/runtests.jl index 380cad1..0247534 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -133,6 +133,12 @@ end @test_throws ErrorException ShortString("foobar", 3) @test_throws ErrorException ss"foobar"b3 + + + @test ShortString7(Test.GenericString("abcde")) == "abcde" + @test ShortString7(Test.GenericString("abcde")) isa ShortString7 + @test ShortString7(SubString(Test.GenericString("abcde"), 2)) == "bcde" + @test ShortString7(SubString(Test.GenericString("abcde"), 2)) isa ShortString7 end