Comments (5)
This should not be a bug, because it's been this way since 0.1. As you already know, there are two workarounds:
- do
node::Column
- do
<Node as EntityTrait>::Column
But you've made an interesting observation, and the solution is right here! Nobody is using PrimaryKeyToColumn
directly, as I imagine, so we can actually afford to break PrimaryKeyToColumn
by renaming Column
to something else. And now is probably the last time I'd change the Entity type system.
from sea-orm.
PrimaryKeyToColumn by renaming Column to something else
Can you open a PR on this? I want to make this change
from sea-orm.
I apologize for my significant mistake. Renaming can't solve this problem. Actually, this problem would never be solved.
Look at this code:
trait T1 {
type Name;
}
struct MyStruct {}
impl T1 for MyStruct {
type Name = i32;
}
fn main() {
let v: MyStruct::Name = 12;
}
Just one trait and just one associate type, but also get:
Compiling playground v0.0.1 (/playground)
error[E0223]: ambiguous associated type
--> src/main.rs:13:12
|
13 | let v: MyStruct::Name = 12;
| ^^^^^^^^^^^^^^ help: use fully-qualified syntax: `<MyStruct as T1>::Name`
For more information about this error, try `rustc --explain E0223`.
error: could not compile `playground` (bin "playground") due to 1 previous error
It can be seen that the ambiguous associated type error is unrelated to associate types with duplicate names. It's easy to understand: If Rust allows to access associate type without fully-qualified syntax, any lib user who define an associate type with duplicate names would cause a break inside the lib.
As a conclusion, perhaps accessing associate types from outside of the trait must use fully-qualified syntax like <MyStruct as T1>::Name
. So this issue dosen't point out any improvement points.
from sea-orm.
There was a discussion around this before, but I couldn't seem to find it.
from sea-orm.
Found it rust-lang/rust#8995
from sea-orm.
Related Issues (20)
- Insert an active model and get back the last insert id doesn't work with autoincrement
- Enum column named "model" generates code that conflicts with the struct Model
- TimestampWithTimeZone returned as array
- Allow Defaulting `string_value` For ActiveEnum Based On Renaming Rules On Variants HOT 1
- transaction use probelm with state
- Sea-ORM still includes sqlx-mysql dependency even when no mysql feature is enabled
- sea-orm-migration - Compile error using most recent version of rc2 HOT 12
- Missing downward feature `runtime-tokio`. HOT 4
- Mock Auto Increment ID Not Working for Postgres Backend Complaining About Null HOT 1
- sea-orm-cli generate error HOT 1
- .money_len type creates invalid SQL HOT 1
- Compilation error when building with sqlx-sqlite and runtime-async-std-rustls HOT 3
- is Sea orm Json type can't insert text [] type HOT 2
- Migration fresh command cannot drop types with Postgresql
- Clarification on Relationship Generation in sea-orm-cli Based on ForeignKey Constraints
- `find_with_related` implicitly adds ordering on `left.id` HOT 3
- In migration use enumeration
- Expose `order_by_with_nulls` in `QueryOrder` trait HOT 3
- Alter enum column with new type (missing USING)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sea-orm.