pub struct ForeignKey<T>where
T: DataObject,{ /* private fields */ }Expand description
Used to implement a relationship between models.
Initialize using From or from_pk
See ForeignKeyOpsSync and ForeignKeyOpsAsync for operations requiring a live database connection.
§Examples
ⓘ
#[model]
struct Blog {
...
}
#[model]
struct Post {
blog: ForeignKey<Blog>,
...
}Implementations§
Source§impl<T> ForeignKey<T>where
T: DataObject,
impl<T> ForeignKey<T>where
T: DataObject,
Sourcepub fn from_pk(pk: <T as DataObject>::PKType) -> ForeignKey<T>
pub fn from_pk(pk: <T as DataObject>::PKType) -> ForeignKey<T>
Create a value from a reference to the primary key of the value
Sourcepub fn get(&self) -> Result<&T, Error>
pub fn get(&self) -> Result<&T, Error>
Returns a reference to the value. It must have already been loaded. If not, returns Error::ValueNotLoaded
Sourcepub fn pk(&self) -> <T as DataObject>::PKType
pub fn pk(&self) -> <T as DataObject>::PKType
Returns a reference to the primary key of the value.
Trait Implementations§
Source§impl<T> AsPrimaryKey<T> for ForeignKey<T>where
T: DataObject,
impl<T> AsPrimaryKey<T> for ForeignKey<T>where
T: DataObject,
Source§impl<T> Clone for ForeignKey<T>where
T: Clone + DataObject,
impl<T> Clone for ForeignKey<T>where
T: Clone + DataObject,
Source§fn clone(&self) -> ForeignKey<T>
fn clone(&self) -> ForeignKey<T>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T> Debug for ForeignKey<T>where
T: Debug + DataObject,
impl<T> Debug for ForeignKey<T>where
T: Debug + DataObject,
Source§impl<'de, T> Deserialize<'de> for ForeignKey<T>
impl<'de, T> Deserialize<'de> for ForeignKey<T>
Source§fn deserialize<D>(
deserializer: D,
) -> Result<ForeignKey<T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<ForeignKey<T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<T> Dummy<Faker> for ForeignKey<T>where
T: DataObject,
Available on crate feature fake only.Fake data support is currently limited to empty ForeignKey relationships.
impl<T> Dummy<Faker> for ForeignKey<T>where
T: DataObject,
Available on crate feature
fake only.Fake data support is currently limited to empty ForeignKey relationships.
Source§impl<T> FieldType for ForeignKey<T>where
T: DataObject,
impl<T> FieldType for ForeignKey<T>where
T: DataObject,
Source§impl<T> ForeignKeyOpsAsync<T> for ForeignKey<T>where
T: DataObject,
Available on crate feature async only.
impl<T> ForeignKeyOpsAsync<T> for ForeignKey<T>where
T: DataObject,
Available on crate feature
async only.Source§impl<T> ForeignKeyOpsSync<T> for ForeignKey<T>where
T: DataObject,
impl<T> ForeignKeyOpsSync<T> for ForeignKey<T>where
T: DataObject,
Source§impl<T> From<&T> for ForeignKey<T>where
T: DataObject,
impl<T> From<&T> for ForeignKey<T>where
T: DataObject,
Source§fn from(obj: &T) -> ForeignKey<T>
fn from(obj: &T) -> ForeignKey<T>
Converts to this type from the input type.
Source§impl<T> From<T> for ForeignKey<T>where
T: DataObject,
impl<T> From<T> for ForeignKey<T>where
T: DataObject,
Source§fn from(obj: T) -> ForeignKey<T>
fn from(obj: T) -> ForeignKey<T>
Converts to this type from the input type.
Source§impl<T> FromSql for ForeignKey<T>where
T: DataObject,
impl<T> FromSql for ForeignKey<T>where
T: DataObject,
Source§fn from_sql_ref(valref: SqlValRef<'_>) -> Result<ForeignKey<T>, Error>
fn from_sql_ref(valref: SqlValRef<'_>) -> Result<ForeignKey<T>, Error>
Used to convert a SqlValRef into another type.
Source§fn from_sql(val: SqlVal) -> Result<Self, Error>where
Self: Sized,
fn from_sql(val: SqlVal) -> Result<Self, Error>where
Self: Sized,
Used to convert a SqlVal into another type. The default
implementation calls
Self::from_sql_ref(val.as_ref()), which
may be inefficient. This method is chiefly used only for
primary keys: a more efficient implementation is unlikely to
provide benefits for types not used as primary keys.Source§impl<T, U> PartialEq<U> for ForeignKey<T>where
U: AsPrimaryKey<T>,
T: DataObject,
impl<T, U> PartialEq<U> for ForeignKey<T>where
U: AsPrimaryKey<T>,
T: DataObject,
Source§impl<T> Serialize for ForeignKey<T>
impl<T> Serialize for ForeignKey<T>
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl<T> ToSql for ForeignKey<T>where
T: DataObject,
impl<T> ToSql for ForeignKey<T>where
T: DataObject,
impl<T> Eq for ForeignKey<T>where
T: DataObject,
Auto Trait Implementations§
impl<T> !Freeze for ForeignKey<T>
impl<T> RefUnwindSafe for ForeignKey<T>where
T: UnwindSafe + RefUnwindSafe,
impl<T> Send for ForeignKey<T>where
T: Send,
impl<T> Sync for ForeignKey<T>where
T: Send,
impl<T> Unpin for ForeignKey<T>
impl<T> UnsafeUnpin for ForeignKey<T>
impl<T> UnwindSafe for ForeignKey<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more