@@ -2,6 +2,7 @@ use pyo3::intern;
22use pyo3:: prelude:: * ;
33use pyo3:: types:: { PyDate , PyDateTime , PyDelta , PyDeltaAccess , PyTime , PyTzInfo } ;
44use speedate:: { Date , DateTime , Duration , Time } ;
5+ use std:: borrow:: Cow ;
56use strum:: EnumMessage ;
67
78use crate :: errors:: { ErrorKind , ValError , ValResult } ;
@@ -257,7 +258,7 @@ pub fn bytes_as_date<'a>(input: &'a impl Input<'a>, bytes: &[u8]) -> ValResult<'
257258 Ok ( date) => Ok ( date. into ( ) ) ,
258259 Err ( err) => Err ( ValError :: new (
259260 ErrorKind :: DateParsing {
260- error : err. get_documentation ( ) . unwrap_or_default ( ) . to_string ( ) ,
261+ error : Cow :: Borrowed ( err. get_documentation ( ) . unwrap_or_default ( ) ) ,
261262 } ,
262263 input,
263264 ) ) ,
@@ -269,7 +270,7 @@ pub fn bytes_as_time<'a>(input: &'a impl Input<'a>, bytes: &[u8]) -> ValResult<'
269270 Ok ( date) => Ok ( date. into ( ) ) ,
270271 Err ( err) => Err ( ValError :: new (
271272 ErrorKind :: TimeParsing {
272- error : err. get_documentation ( ) . unwrap_or_default ( ) . to_string ( ) ,
273+ error : Cow :: Borrowed ( err. get_documentation ( ) . unwrap_or_default ( ) ) ,
273274 } ,
274275 input,
275276 ) ) ,
@@ -280,8 +281,8 @@ pub fn bytes_as_datetime<'a, 'b>(input: &'a impl Input<'a>, bytes: &'b [u8]) ->
280281 match DateTime :: parse_bytes ( bytes) {
281282 Ok ( dt) => Ok ( dt. into ( ) ) ,
282283 Err ( err) => Err ( ValError :: new (
283- ErrorKind :: DateTimeParsing {
284- error : err. get_documentation ( ) . unwrap_or_default ( ) . to_string ( ) ,
284+ ErrorKind :: DatetimeParsing {
285+ error : Cow :: Borrowed ( err. get_documentation ( ) . unwrap_or_default ( ) ) ,
285286 } ,
286287 input,
287288 ) ) ,
@@ -296,8 +297,8 @@ pub fn int_as_datetime<'a>(
296297 match DateTime :: from_timestamp ( timestamp, timestamp_microseconds) {
297298 Ok ( dt) => Ok ( dt. into ( ) ) ,
298299 Err ( err) => Err ( ValError :: new (
299- ErrorKind :: DateTimeParsing {
300- error : err. get_documentation ( ) . unwrap_or_default ( ) . to_string ( ) ,
300+ ErrorKind :: DatetimeParsing {
301+ error : Cow :: Borrowed ( err. get_documentation ( ) . unwrap_or_default ( ) ) ,
301302 } ,
302303 input,
303304 ) ) ,
@@ -338,7 +339,7 @@ pub fn int_as_time<'a>(
338339 t if t < 0_i64 => {
339340 return Err ( ValError :: new (
340341 ErrorKind :: TimeParsing {
341- error : "time in seconds should be positive" . to_string ( ) ,
342+ error : Cow :: Borrowed ( "time in seconds should be positive" ) ,
342343 } ,
343344 input,
344345 ) ) ;
@@ -352,7 +353,7 @@ pub fn int_as_time<'a>(
352353 Ok ( dt) => Ok ( dt. into ( ) ) ,
353354 Err ( err) => Err ( ValError :: new (
354355 ErrorKind :: TimeParsing {
355- error : err. get_documentation ( ) . unwrap_or_default ( ) . to_string ( ) ,
356+ error : Cow :: Borrowed ( err. get_documentation ( ) . unwrap_or_default ( ) ) ,
356357 } ,
357358 input,
358359 ) ) ,
@@ -370,7 +371,7 @@ pub fn bytes_as_timedelta<'a, 'b>(input: &'a impl Input<'a>, bytes: &'b [u8]) ->
370371 Ok ( dt) => Ok ( dt. into ( ) ) ,
371372 Err ( err) => Err ( ValError :: new (
372373 ErrorKind :: TimeDeltaParsing {
373- error : err. get_documentation ( ) . unwrap_or_default ( ) . to_string ( ) ,
374+ error : Cow :: Borrowed ( err. get_documentation ( ) . unwrap_or_default ( ) ) ,
374375 } ,
375376 input,
376377 ) ) ,
0 commit comments