`slice-dst`: Provide example for custom 'slices' using `SliceWithHeader`
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 25/100
- Issue 类型
- 文档
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- rust
调研方向
从 issue 中的 SliceWithHeader 类型和自定义 MyString/MyStr 示例开始;未确定文件或测试。明确所提议的引用转换的安全性要求,然后记录一个完整的自定义 slice 示例及其预期的 Borrow/ToOwned 行为。
由索引模型根据 Issue 内容生成。
描述
Thank you for this awesome crate. I always respect when people dive into the unsafe world of Rust.
I'd like to use the slice-dst crate to build something similar to String and str. Let's assume:
struct MyString(Box<SliceWithHeader<Info, u8>>);
To mimicry str I want to implement Borrow<MyStr> for MyString and ToOwned for MyStr (type Owned = MyString). However, I have a problem defining MyStr. I could use a type alias:
type MyStr = SliceWithHeader<Info, u8>;
But this is inconvenient and won't allow some custom impl MyStr. What I would like is to use is a new-type-pattern. But this makes it difficult implementing Borrow:
struct MyStr(SliceWithHeader<Info, u8>);
impl Borrow<MyStr> for MyString {
fn borrow(&self) -> &MyStr {
&*self.0 // <-- requires some cast/convertion/idk
}
}
Would it be safe to simple cast the reference from the Box within MyString to a &MyStr or would this be undefined behavior?
- 主要语言
- Rust
- 星标
- 137
- 派生
- 15
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
CAD97/pointer-utils 的其他 Issue
-
难度 5/5 一周以上 新手友好度 25/100
CAD97/pointer-utils#88 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 45/100
CAD97/pointer-utils#87 · 3 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 35/100
CAD97/pointer-utils#85 · 3 条评论 ·
-
FatErasedPtr 未关闭
难度 5/5 一周以上 新手友好度 30/100
CAD97/pointer-utils#84 ·
-
难度 5/5 一周以上 新手友好度 25/100
CAD97/pointer-utils#75 · 3 条评论 ·
查看 CAD97/pointer-utils 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
TheLarkInn/aipm#2413 ·
-
documentation
难度 1/5 1 小时以内 新手友好度 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
难度 2/5 1-3 小时 新手友好度 75/100
-
todo:ticket
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 75/100
taikoxyz/taiko-mono#22168 · 1 条评论 ·