···7777 }
7878 /// State trait tracking which required fields have been set
7979 pub trait State: sealed::Sealed {
8080- type Cid;
8180 type Did;
8181+ type Cid;
8282 }
8383 /// Empty state - all required fields are unset
8484 pub struct Empty(());
8585 impl sealed::Sealed for Empty {}
8686 impl State for Empty {
8787- type Cid = Unset;
8887 type Did = Unset;
8989- }
9090- ///State transition - sets the `cid` field to Set
9191- pub struct SetCid<S: State = Empty>(PhantomData<fn() -> S>);
9292- impl<S: State> sealed::Sealed for SetCid<S> {}
9393- impl<S: State> State for SetCid<S> {
9494- type Cid = Set<members::cid>;
9595- type Did = S::Did;
8888+ type Cid = Unset;
9689 }
9790 ///State transition - sets the `did` field to Set
9891 pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
9992 impl<S: State> sealed::Sealed for SetDid<S> {}
10093 impl<S: State> State for SetDid<S> {
101101- type Cid = S::Cid;
10294 type Did = Set<members::did>;
9595+ type Cid = S::Cid;
9696+ }
9797+ ///State transition - sets the `cid` field to Set
9898+ pub struct SetCid<S: State = Empty>(PhantomData<fn() -> S>);
9999+ impl<S: State> sealed::Sealed for SetCid<S> {}
100100+ impl<S: State> State for SetCid<S> {
101101+ type Did = S::Did;
102102+ type Cid = Set<members::cid>;
103103 }
104104 /// Marker types for field names
105105 #[allow(non_camel_case_types)]
106106 pub mod members {
107107- ///Marker type for the `cid` field
108108- pub struct cid(());
109107 ///Marker type for the `did` field
110108 pub struct did(());
109109+ ///Marker type for the `cid` field
110110+ pub struct cid(());
111111 }
112112}
113113···177177impl<'a, S> GetBlobBuilder<'a, S>
178178where
179179 S: get_blob_state::State,
180180- S::Cid: get_blob_state::IsSet,
181180 S::Did: get_blob_state::IsSet,
181181+ S::Cid: get_blob_state::IsSet,
182182{
183183 /// Build the final struct
184184 pub fn build(self) -> GetBlob<'a> {