Skip to content

Commit de5c8bf

Browse files
committed
refactor: uuid to string
1 parent 025998c commit de5c8bf

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

src/serializers/infer.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ use serde::ser::{Error, Serialize, SerializeMap, SerializeSeq, Serializer};
1313
use crate::input::Int;
1414
use crate::serializers::errors::SERIALIZATION_ERR_MARKER;
1515
use crate::serializers::filter::SchemaFilter;
16-
use crate::serializers::shared::uuid_to_dict;
1716
use crate::serializers::shared::{PydanticSerializer, TypeSerializer};
1817
use crate::serializers::SchemaSerializer;
1918
use crate::tools::{extract_i64, py_err, safe_repr};
@@ -188,7 +187,11 @@ pub(crate) fn infer_to_python_known(
188187
let py_url: PyMultiHostUrl = value.extract()?;
189188
py_url.__str__().into_py(py)
190189
}
191-
ObType::Uuid => serialize_dict(uuid_to_dict(value)?)?,
190+
ObType::Uuid => {
191+
let py_uuid: &PyAny = value.downcast()?;
192+
let uuid = super::type_serializers::uuid::uuid_to_string(py_uuid)?;
193+
uuid.into_py(py)
194+
}
192195
ObType::PydanticSerializable => serialize_with_serializer()?,
193196
ObType::Dataclass => serialize_dict(dataclass_to_dict(value)?)?,
194197
ObType::Enum => {
@@ -485,7 +488,11 @@ pub(crate) fn infer_serialize_known<S: Serializer>(
485488
pydantic_serializer.serialize(serializer)
486489
}
487490
ObType::Dataclass => serialize_dict!(dataclass_to_dict(value).map_err(py_err_se_err)?),
488-
ObType::Uuid => serialize_dict!(uuid_to_dict(value).map_err(py_err_se_err)?),
491+
ObType::Uuid => {
492+
let py_uuid: &PyAny = value.downcast().map_err(py_err_se_err)?;
493+
let uuid = super::type_serializers::uuid::uuid_to_string(py_uuid).map_err(py_err_se_err)?;
494+
serializer.serialize_str(&uuid)
495+
}
489496
ObType::Enum => {
490497
let v = value.getattr(intern!(value.py(), "value")).map_err(py_err_se_err)?;
491498
infer_serialize(v, serializer, include, exclude, extra)

src/serializers/shared.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -397,15 +397,3 @@ pub(super) fn dataclass_to_dict(dc: &PyAny) -> PyResult<&PyDict> {
397397
}
398398
Ok(dict)
399399
}
400-
401-
pub(super) fn uuid_to_dict(dc: &PyAny) -> PyResult<&PyDict> {
402-
let py = dc.py();
403-
let dc_slots: &PyDict = dc.getattr(intern!(py, "__slots__"))?.downcast()?;
404-
let dict = PyDict::new(py);
405-
406-
for (field_name, _) in dc_slots.iter() {
407-
let field_name: &PyString = field_name.downcast()?;
408-
dict.set_item(field_name, dc.getattr(field_name)?)?;
409-
}
410-
Ok(dict)
411-
}

0 commit comments

Comments
 (0)