Skip to content

Commit e099d45

Browse files
committed
cass_data_type: implement cass_data_type_is_frozen
1 parent 694c603 commit e099d45

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

scylla-rust-wrapper/src/cass_types.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,8 +403,19 @@ pub unsafe extern "C" fn cass_data_type_type(data_type: *const CassDataType) ->
403403
data_type.get_value_type()
404404
}
405405

406-
// #[no_mangle]
407-
// pub unsafe extern "C" fn cass_data_type_is_frozen(data_type: *const CassDataType) -> cass_bool_t {}
406+
#[no_mangle]
407+
pub unsafe extern "C" fn cass_data_type_is_frozen(data_type: *const CassDataType) -> cass_bool_t {
408+
let data_type = ptr_to_ref(data_type);
409+
let is_frozen = match data_type {
410+
CassDataType::UDT(udt) => udt.frozen,
411+
CassDataType::List { frozen, .. } => *frozen,
412+
CassDataType::Set { frozen, .. } => *frozen,
413+
CassDataType::Map { frozen, .. } => *frozen,
414+
_ => false,
415+
};
416+
417+
is_frozen as cass_bool_t
418+
}
408419

409420
#[no_mangle]
410421
pub unsafe extern "C" fn cass_data_type_type_name(

0 commit comments

Comments
 (0)