Skip to content

Provides a Python string implementation based on C's nul-terminated strings.

License

Notifications You must be signed in to change notification settings

atpalmer-python/python-cstring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cstring Module

Alternate string representation to the built-in str type.

  • Uses C-string representation internally.
  • Memory is allocated contiguously to reduce pointer-hopping.
  • UTF-8 encoding.
  • len returns size in bytes (not including terminating zero-byte).
  • Random access (to bytes, not Unicode code points) is supported with indices and slices.
  • Supports initialization from str, bytes, bytearray, array, memoryview, cstring, and other buffer protocol objects.

Methods

count(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.count

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

find(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.find

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

index(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.index

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

rfind(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.rfind

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

rindex(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.rindex

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

startswith(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.startswith

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

endswith(substring [,start [,end]])

See: https://docs.python.org/3/library/stdtypes.html#str.endswith

Notes:

  • substring may be a cstring or Python str object.
  • start and end, if provided, are byte indexes.

TODO

  • Write docs (see str type docs)
  • Write docstrings
  • Fill out setup.py classifiers
  • Implement iter (iterate over Unicode code points, "runes")
  • Implement str methods
  • Include start/end indexes as byte indexes? Calculate code points? Or just don't support?
  • Implement buffer interface
  • Decide subclassing protocol

About

Provides a Python string implementation based on C's nul-terminated strings.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published