Skip to content

Flesh out functionality #18

@FintanH

Description

@FintanH

We should flesh out the functionality of nonempty. A lot of it would just be the Vec implementation.
Enumerating these for clarity and also to comment on which ones we may not want:

  • append
  • as_mut_ptr N/A (memory is not contiguous)
  • as_mut_slice N/A
  • as_ptr N/A
  • as_slice N/A
  • capacity
  • chunks
  • chunks_exact
  • chunks_exact_mut
  • chunks_mut
  • clone_from_slice - we use from_slice, we should rename This doesn't make sense either since it's just copying a slice's contents in, but we can't guarantee a length of 1 without panicing.
  • concat
  • connect
  • contains
  • copy_from_slice - we have from_slice but a Copy version would be good Looking into the semantics of this, I think it doesn't suit NonEmpty after all.
  • copy_within
  • clear - we probably don't want this
  • dedup
  • dedup_by
  • drain - wouldn't make sense for NonEmpty unless it returned a Vec rather than Drain
  • drain_filter - same as above
  • ends_with
  • eq_ignore_ascii_case
  • extend_from_slice
  • first
  • first_mut
  • from_raw_parts - this seems unecessary
  • get
  • get_mut
  • get_unchecked
  • get_unchecked_mut
  • insert
  • into_boxed_slice
  • into_raw_parts - not sure about this one
  • is_ascii
  • is_empty
  • is_sorted
  • is_sorted_by_key
  • iter
  • iter_mut
  • join
  • last
  • last_mut
  • leak - seems specialised
  • len
  • make_ascii_lowercase
  • make_ascii_uppercase
  • new
  • partition_at_index
  • partition_at_index_by
  • partition_at_index_by_key
  • partition_deup
  • partition_deup_by
  • partition_deup_by_key
  • pop
  • push
  • rchunks
  • rchunks_exact
  • rchunks_exact_mut
  • rchunks_mut
  • remove - should give back Vec
  • remove_item - should give back Vec
  • repeat
  • reserve
  • reserve_exact
  • resize - possibly just work on the tail Vec
  • resize_default
  • resize_wtih
  • retain - unsure if this should be kept
  • reverse
  • rotate_left
  • rotate_right
  • rsplit
  • rsplit_mut
  • rsplitn
  • rsplitn_mut
  • set_len
  • shrink_to - should be greater than 1
  • shrink_to_fit
  • sort
  • sort_by
  • sort_by_cahced_key
  • sort_by_key
  • sort_unstable
  • sort_unstable_by
  • sort_unstable_by_key
  • splice
  • split
  • split_at
  • split_at_mut
  • split_first
  • split_first_mut
  • split_last
  • split_last
  • split_last_mut
  • split_mut
  • split_off
  • splitn
  • splitn_mut
  • starts_with
  • swap
  • swap_with_slice
  • to_ascii_lowercase
  • to_ascii_uppercase
  • to_vec - the Into impl does this
  • try_reserve
  • try_reserve_exact
  • windows
  • with_capacity
  • From<NonEmpty<T>> for Vec<T> - Implement and test IntoIterator #17 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions