Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement std::fmt::Write #199

Open
piegamesde opened this issue Oct 5, 2021 · 3 comments
Open

implement std::fmt::Write #199

piegamesde opened this issue Oct 5, 2021 · 3 comments

Comments

@piegamesde
Copy link

I'd like to print! to an ArrayVec or ArrayString on no_std, where std::io::Write does not exist.

@bluss
Copy link
Owner

bluss commented Oct 5, 2021

fmt::Write is already implemented for ArrayString, so that part's done. How would it work with Arrayvec? There's no precendent (Vec doesn't implement fmt::Write), but if it's explained, maybe it's a good idea?

@piegamesde
Copy link
Author

Oh, I didn't think to check ArrayString, sorry about that! I just saw that heapless had an implementation and that arrayvec didn't. At the core, they simply do self.extend_from_slice(s.as_bytes()) which looks sensible to me.

@bluss
Copy link
Owner

bluss commented Oct 16, 2021

Yes, that looks good, we can do that for arrayvec

joseluis added a commit to andamira/ladata that referenced this issue Mar 12, 2022
- rename `deps_time` feature to `deps_datetime`.
- rename `ArrayBytes*` to `ByteArray*`.
- add support for 8-bit and 128-bit pointer sizes.
- reorganize features.
- update docs.
- bump version.

--------------

- partial completion of the `define_all_sizes` macro structure. WIP

- automatically implement Read & Write for DataCells !!
  - bluss/arrayvec#199

  - MAYBE for DataCellUnsafe? (& DataType?)
  - CLARIFY differences with serialization, or could share common ground?
    - decide whether to
  automatically derive Write for Vec<DataTypes>

- add `unsafe_cell` example. WIP
- add dev dependency `static_assertions`. WIP
  - MAYBE update tests WIP

- add serialization, Serde & the other
// #[cfg(feature = "serde")]
// #[macro_use]
// extern crate serde;
more alternatives :) (name?)

- include specific implementations From DataType to DataCell when implements `Default`
  - (or consider whether require the `Default` trait (similar case to `Debug`)

----

# TODO !
  - una macro o método sencillo para crear tipos personalizados
  (incluyendo opcionalmente un datatype…) ?
  con tal de que implemente DataTypes...
- add conversion from CellType to CellData (using default value)
  - impl Default

---------------

  MAYBE
- don't move column & row into series (what are their characteristics anyway?
  I alreadu

- is_categorical? None -> false
- is_numerical? None -> false

---

- TODO: from_hashmap

---

- complete the `Column::new` constructor.
- add `time` dependency (MAYBE)
- add `byte` dependency. (PR fixes)

TODO:
- rename Handle* to Id*?
joseluis added a commit to andamira/ladata that referenced this issue Mar 12, 2022
- rename `deps_time` feature to `deps_datetime`.
- rename `ArrayBytes*` to `ByteArray*`.
- add support for 8-bit and 128-bit pointer sizes.
- reorganize features.
- update docs.
- bump version.

--------------

- partial completion of the `define_all_sizes` macro structure. WIP

- automatically implement Read & Write for DataCells !!
  - bluss/arrayvec#199

  - MAYBE for DataCellUnsafe? (& DataType?)
  - CLARIFY differences with serialization, or could share common ground?
    - decide whether to
  automatically derive Write for Vec<DataTypes>

- add `unsafe_cell` example. WIP
- add dev dependency `static_assertions`. WIP
  - MAYBE update tests WIP

- add serialization, Serde & the other
// #[cfg(feature = "serde")]
// #[macro_use]
// extern crate serde;
more alternatives :) (name?)

- include specific implementations From DataType to DataCell when implements `Default`
  - (or consider whether require the `Default` trait (similar case to `Debug`)

----

  - una macro o método sencillo para crear tipos personalizados
  (incluyendo opcionalmente un datatype…) ?
  con tal de que implemente DataTypes...
- add conversion from CellType to CellData (using default value)
  - impl Default

---------------

  MAYBE
- don't move column & row into series (what are their characteristics anyway?
  I alreadu

- is_categorical? None -> false
- is_numerical? None -> false

---

- TODO: from_hashmap

---

- complete the `Column::new` constructor.
- add `time` dependency (MAYBE)
- add `byte` dependency. (PR fixes)

TODO:
- rename Handle* to Id*?
joseluis added a commit to andamira/ladata that referenced this issue Dec 11, 2022
----

- fix DataLine
-
  - Dense
  - Grow
  - Buffer (FUTURE)
  - export dense from all
  - export copy?

- add an crate error type for all kinds of data errors

- Make DataTable
- Make DataFrame
- Make DataGrid
  - MOVE Grid2d here and generalize with the builder

- Simplify
  - MAYBE remove `fugit`, and time? replace with espera
    - in `espera` add smaller sized times, with clear time limits, dimensioned
    - together with maybe traits to convert from one another (as counters…)

----

# IDEAS WORKS

- check features:
  - https://docs.rs/crate/half/2.0.0/features
  - https://docs.rs/crate/half/2.0.0/features

=MAYBE
- separate lines & units into a different module (for docs)

- MAYBE? rename traits to singular word

- [ ] CHECK changes on macros
  - [ ] define_single_sice:DataBare noncopy
  - [ ] use Manually Drop
- [ ] WIP rename traits (no final s)
- [ ] update lib dics

-----
- DESIGN:
- MAYBE simplify :)
- MAYBE return when rust 1.65 comes

----

--------

↓MAYBE
- add new char array type

- support posits from
  - https://github.com/rust-amplify/rust-amplify

----------------
:WIP improve DataBare

- mark: `WIP:databare`
- MAYBE work in a different feature branch?
- TODO:
  - allow With variant
  - allow non-Copy

# RETHINK DataCell
  - modify DataCell to include a DataTypes phantom Data?
    - should be a struct

--------------

- add serialization, Serde & arkiv
  ```
  #[cfg(feature = "serde")]
  #[macro_use]
  extern crate serde;
  more alternatives :) (name?)
  ```
  - https://davidkoloski.me/blog/rkyv-is-faster-than/

- automatically implement Read & Write for DataCells !!
  - bluss/arrayvec#199

  - MAYBE for DataCellUnsafe? (& DataType?)
  - CLARIFY differences with serialization, or could share common ground?
    - decide whether to
  automatically derive Write for Vec<DataTypes>

- add `unsafe_cell` example. WIP
- add dev dependency `static_assertions`. WIP
  - MAYBE update tests WIP

- include specific implementations From DataType to DataCell when implements `Default`
  - (or consider whether require the `Default` trait (similar case to `Debug`)

----

# TODO !
  - una macro o método sencillo para crear tipos personalizados
  (incluyendo opcionalmente un datatype…) ?
  con tal de que implemente DataTypes...

---------------

  MAYBE
- don't move column & row into series (what are their characteristics anyway?
  I alreadu

- DataClass trait (related with ±nested?)
	- is_categorical? None -> false
	- is_numerical? None -> false

# crates

- MAYBE https://crates.io/crates/takeable/0.2.0
  - https://www.reddit.com/r/rust/comments/y5q6ac/taking_ownership_of_structure_fields_inside/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants