Skip to contents

Reports non-forcing diagnostics for a possible character vector. This is a preflight/development helper: it does not call `STRING_ELT()`, `STRING_PTR_RO()`, `DATAPTR()`, or any registered reader callback.

Usage

charport_info(x)

Arguments

x

object to inspect.

Value

A named list containing `is_strsxp`, `length`, `is_altrep`, `is_materialized`, `is_registered`, reader capability flags, `stateful_reader`, `reentrant`, ALTREP class name/package fields, and `altrep_class` as `"package::class"` when class metadata is available.

Details

`is_materialized` means ordinary string pointer storage is available without forcing (`DATAPTR_OR_NULL(x) != NULL`). For base R deferred strings, some elements may have been cached by `STRING_ELT()` while this still reports `FALSE`; the field is a full-materialization/direct-pointer diagnostic.

Examples

charport_info(charvec("a"))
#> $is_strsxp
#> [1] TRUE
#> 
#> $length
#> [1] 1
#> 
#> $is_altrep
#> [1] TRUE
#> 
#> $is_materialized
#> [1] FALSE
#> 
#> $is_registered
#> [1] TRUE
#> 
#> $persistent_views
#> [1] TRUE
#> 
#> $concurrent_access
#> [1] TRUE
#> 
#> $stateful_reader
#> [1] FALSE
#> 
#> $reentrant
#> [1] TRUE
#> 
#> $altrep_class_name
#> [1] "charvec"
#> 
#> $altrep_class_package
#> [1] "charport"
#> 
#> $altrep_class
#> [1] "charport::charvec"
#>